Bir kullanıcının kontrol birimimdeki açık rolünü almanın bir yolu var mı? Bu, ASP.NET Üyeliği ve Rol Sağlayıcılarını kullanmayı varsaymaktadır. "IsInRole" çalışmıyor - Aslında içinde oldukları rolün adını almam gerekiyor.güncel kullanıcının rolünü kazan
cevap
GetRoles yönteminden Roller listesi alabilirsiniz.
string[] rolesArray;
public void Page_Load()
{
RolePrincipal r = (RolePrincipal)User;
rolesArray = r.GetRoles();
...//extra code
}
(bağlantısından) kullanıcı olduğunu bir rol alamayan böylece bir kullanıcı birden fazla rolde olabilir, ama kolayca bir rol listesini alabilirsiniz kullanıcı içindedir
sen anda oturum açan içindedir rollerinin listesini almak için Roles
türü kullanabilirsiniz. Eğer keyfi bir kullanıcı için rolleri almak istiyorsanız yapabilirsiniz
public ActionResult ShowUserRoles() {
string[] roleNames = Roles.GetRolesForUser();
return View(roleNames);
}
Ya baba Roles.GetRolesForUser()
'u aradığınızda kullanıcı adındaki ss.
Ve DOB gibi özel kullanıcılara özgü veriler nasıl edinilir? – xameeramir
@zameeramir, StackOverflow hakkında sormak için iyi bir soru gibi görünüyor. – Eilon
burada: http://stackoverflow.com/questions/30216915/how-to-get-user-profile-data-from-asp-net-mvc-custom-identityuser-model/30217188#30217188 – xameeramir
Geçerli kullanıcının rolünü Roles.GetRolesForUser()
ile alabilirsiniz.
kontrol etmek ne yaptım: MVC4 içinde
Roles.GetRolesForUser().Contains("Administrator")
Ayrıca Bir kullanıcının User.IsInRole ("RolAdı") 'yi kullanarak bir rolde olup olmadığını kontrol edin' ' –
Scotty.NET'in cevabı (bu yanıtın yorumunda), bir kullanıcının ait olup olmadığını kontrol etmenin daha iyi (daha hızlı) bir yol olacağını Bana belli bir rol için. – VoidKing
Simplemembership:
Alma Kullanım rol-
var role = System.Web.Security.Roles.GetRolesForUser().Single();
olmadığını kontrol etmek için kullanıcı bir role ait değil -
Bazı garip ayarların ya da kurulumların eksik olup olmadığını bilmiyorum, ancak ben örn. Çalışmak için User.IsInRole
veya Roles.GetRolesForUser()
. Sadece bir istisna alıyorum (boş referansı düşünüyorum) ve uygulama sadece durur. Microsoft tarafından Identity Sample projesinde olduğu gibi OwinContext ve Create yöntemi vb. Için bir RoleManager yapılandırmış olmama rağmen, web.config içinde Role Manager'ı etkinleştirdim. I (db ApplicationDbContext olan) bu gibi başka bir yaklaşım kullanarak ilk başta bu çözüldü:
var UserID = User.Identity.GetUserId();
var userRoles = db.Roles.Include(r => r.Users).ToList();
var userRoleNames = (from r in userRoles
from u in r.Users
where u.UserId == UserID
select r.Name).ToList();
Bu en iyi duruma yol olmayabilir ve muhtemelen bir daha basit forma değiştirilebilir ama benim için çalıştı ve may Diğer yaklaşımlar kadar fazla kurulum/bağımlılık gerektirmez. İkinci yaklaşım bu (Denetleyiciniz sınıfına bu ekleyin) olduğu:
private ApplicationDbContext db = new ApplicationDbContext();
private ApplicationUserManager _userManager;
public ApplicationUserManager UserManager
{
get
{
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
set
{
_userManager = value;
}
}
private ApplicationRoleManager _roleManager;
public ApplicationRoleManager RoleManager
{
get
{
return _roleManager ?? HttpContext.GetOwinContext().Get<ApplicationRoleManager>();
}
private set
{
_roleManager = value;
}
}
Kumandanızda İçerisinde şimdi mesela yapabilirsiniz:
var UserID = User.Identity.GetUserId();
var RolesForUser = await UserManager.GetRolesAsync(UserID);
ben sadece ASP.NET MVC 5 uygulamasını kullanıyorum açık ol. RoleManager bu örnekte kullanılmaz, ancak rol oluşturma, bulma, güncelleme vb. Için kullanılabilir. Bu yaklaşımı kullanmak, uygulamanızın bir yararı olması durumunda, beklemede olan çağrıların beklemede kullanılmasına izin verir.
Sana Rol Yöneticisi hakkında burada bir hata içine çalıştırırsanız etkinleştirilen değil, bu çalıştırmak Diğerleri için bu kodu
((ClaimsIdentity)User.Identity).FindAll(ClaimTypes.Role).ToList()
.OrderBy(x => x.Value == "admin" ? 1
: x.Value == "Salesperson" ? 2
: x.Value == "User" ? 3 : 4).First().Value
- 1. Postgres'te bir kullanıcının yinelenen rolünü nasıl oluşturabilirim
- 2. ASP .NET MVC: Bir kullanıcının rolünü nasıl değiştirebilirim?
- 3. Kullanıcının konumu değiştirdiği anda güncel konumların kaydedilmesi, Intel XDK
- 4. mvc 5 kullanıcı rolünü kontrol edin
- 5. Varolan işler ve Kazan kasanı
- 6. html5 kazan plakası nasıl kullanılır?
- 7. Bir çalışan rolünü veya bir web rolünü kullanıp kullanmayacağınız: Windows Azure
- 8. Güncel mağaza
- 9. Bir Chef rolünü "." Ile silemiyorum. adında
- 10. Azure'da yalnızca çalışan/web rolünü dağıtma
- 11. Güncel projemdeki Wicket
- 12. Güncel duvarkağıdı al
- 13. Git: Zaten Güncel
- 14. Güncel <tr>
- 15. Güncel ProcessID nasıl edinilir?
- 16. Qt fiyatlandırma (en güncel)
- 17. Güncel kullanıcı adını C++ 'da Windows'ta alın
- 18. Kullanıcının, Rails
- 19. Kullanıcının mikrofonunun
- 20. 960 grid's clearfix vs HTML5 Kazan plakası clearfix - Fark nedir?
- 21. kesinlikle kazan-plaka olmadan Strings basit Scala vaka sınıfları Oluşturma
- 22. Py2Exe Hata: Eksik çalışma py3.5-kazan-amd64.exe aşağıdaki Alma
- 23. Birden çok bölgede bir Azure rolünü çalıştırmak mı istiyorsunuz?
- 24. Varolan Moose rolünü çalışma zamanında bir sınıfa nasıl yazarım?
- 25. Güncel tarihe 1 hafta ekle
- 26. Güncel dizini Dart'ta nasıl bulabilirim?
- 27. güncel Statik Harita API musunuz?
- 28. Güncel dili django'da nasıl alıyorum?
- 29. HTML biçiminde güncel tarihin belirlenmesi
- 30. Thymeleaf 'da güncel tarihleri göster
kullanın "= etkin roleManager elemanı ve seti bulmak için web yapılandırma içine pop bir özellik olarak true. – MisterJames