내 컨트롤러에서 사용자가 속한 명시적인 역할을 얻는 방법이 있습니까? 여기서는 ASP.NET 멤버쉽 및 역할 공급자를 사용한다고 가정합니다. "IsInRole"이 작동하지 않습니다. 실제로 그들이 속한 역할의 이름을 알아야합니다.현재 사용자의 역할 가져 오기
답변
GetRoles 메서드에서 역할 목록을 가져올 수 있습니다.
string[] rolesArray;
public void Page_Load()
{
RolePrincipal r = (RolePrincipal)User;
rolesArray = r.GetRoles();
...//extra code
}
(링크에서) 당신이 사용자에 있다는 하나 역할을 얻을 수 있도록 사용자는 하나 개 이상의 역할을 할 수 있지만, 당신은 쉽게 역할 목록를 얻을 수 있습니다 사용자에
이당신은 현재 로그인 한 사용자에 역할 목록 얻기 위해 Roles
유형을 사용할 수 있습니다. 당신은 임의의 사용자에 대한 역할을 얻으려면 당신이 할 수있는
public ActionResult ShowUserRoles() {
string[] roleNames = Roles.GetRolesForUser();
return View(roleNames);
}
또는를 아빠 Roles.GetRolesForUser()
에 전화 할 때 사용자 이름에 ss.
DOB와 같은 사용자 지정 사용자 지정 데이터를 얻는 방법? – xameeramir
@zameeramir StackOverflow에서 묻는 좋은 별도의 질문처럼 들립니다. – Eilon
여기에 있습니다 : http://stackoverflow.com/questions/30216915/how-to-get-user-profile-data-from-asp-net-mvc-custom-identityuser-model/30217188#30217188 – xameeramir
Roles.GetRolesForUser()
으로 현재 사용자의 역할을 가져올 수 있습니다.
확인하려면 내가 무슨 짓을 : MVC4에서
Roles.GetRolesForUser().Contains("Administrator")
User.IsInRole ("RoleName")' –
Scotty.NET의 답변 (이 답변에 대한 댓글에서)이 사용자가 속한 것인지 확인하는 것이 더 빠르고 (더 빠른) 방법 인 것처럼 보입니다. 나에게 어떤 역할로. – VoidKing
Simplemembership :
얻기 사용자의 역할 -
var role = System.Web.Security.Roles.GetRolesForUser().Single();
있는지 확인하려면 사용자가 특정 역할에 속함 -
if (User.IsInRole("External"))
몇 가지 이상한 설정이나 설정이 누락 된 것인지 모르겠지만 예를 들어 볼 수 없습니다. User.IsInRole
또는 Roles.GetRolesForUser()
이 작동합니다. 난 그냥 예외 (나는 null 참조), 그리고 응용 프로그램이 막 중단 얻을. 비록 OwinContext와 Create 메소드와 같은 RoleManager를 Microsoft의 Identity 샘플 프로젝트와 같이 구성하고 web.config의 Role Manager를 사용할 수 있도록 설정했습니다. 나는 (데시벨은 ApplicationDbContext이다)과 같은 다른 방법을 사용하여 처음에이 문제를 해결 :
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();
이 가장 최적화 된 방법이 될 수 없으며 아마도 더 간단 양식으로 변경 될 수 있지만 나를 위해 일한 월 다른 접근법만큼 많은 설정/종속성을 요구하지 않습니다. 두 번째 방법이 (컨트롤러 클래스에이를 추가)된다
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;
}
}
을 컨트롤러 내부에서 지금 예를 수행 할 수 있습니다
var UserID = User.Identity.GetUserId();
var RolesForUser = await UserManager.GetRolesAsync(UserID);
를 그냥에 ASP.NET MVC 5 응용 프로그램을 사용하고 있습니다 명확하게. RoleManager는이 예제에서는 사용되지 않지만 역할을 생성, 검색, 업데이트하는 데 사용될 수 있습니다. 이 방법을 사용하면 애플리케이션에 이점이있는 경우 await을 사용하여 비동기 호출을 수행 할 수 있습니다.
난 당신이 역할 관리자 여기에 대해 오류로 실행하면 활성화되지 않는이로 실행 다른 사람을 위해이 코드
((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. 현재 사용자의 바탕 화면을 VB.NET으로 가져 오기
- 2. 로그인 한 현재 사용자의 데이터 가져 오기
- 3. .net mvc3 사용자의 역할 얻기
- 4. kerberos from Java - 현재 인증 된 사용자의 제목 가져 오기
- 5. 현재 로그인 한 사용자의 언어를 AppleScript로 가져 오기
- 6. fbjs : 현재 로그인 한 사용자의 uid 가져 오기
- 7. 사용자의 Facebook 사진 가져 오기
- 8. KRL로 사용자의 시간대 가져 오기
- 9. 스프링 보안 - 사용자 역할 가져 오기
- 10. Sitecore - 사용자의 역할 제한
- 11. asterisk-java에서 사용자의 활성 채널 가져 오기
- 12. ASP.NET에서 현재 URL 가져 오기
- 13. scrollviews 현재 contentOffset 가져 오기
- 14. 브라우저에서 현재 URL 가져 오기
- 15. URL에서 현재 페이지 가져 오기
- 16. FlowDocumentPageViewer의 현재 페이지 가져 오기
- 17. 현재 달력 주 가져 오기
- 18. IFRAME에서 현재 URL 가져 오기
- 19. J2ME 현재 시간대 가져 오기
- 20. 현재 auto_increment 값 가져 오기
- 21. QMutableListIterator에서 현재 항목 가져 오기
- 22. PHP : 현재 지역에 대한 시간 가져 오기
- 23. Mac OS X : 디렉토리 서비스에서 현재 사용자의 현재 사용자 이름 및 홈 디렉토리 가져 오기
- 24. 가져 오기 사용자의 페이스 북 FQL
- 25. 사용자의 순서에 따라 DataGridView 열 가져 오기
- 26. Android에서 사용자의 문자 하나만 가져 오기
- 27. 로그인 한 사용자의 사용자 속성 가져 오기
- 28. Python + Pylons에서 사용자의 시간대 가져 오기
- 29. Facebook : PHP로 사용자의 Facebook UID 가져 오기
- 30. 서비스 내에서 현재 UserProfile 경로 가져 오기
를 사용하여 "= 활성화으로 roleManager 요소 및 세트를 찾아 웹 설정에 팝업 true "를 속성으로 사용합니다. – MisterJames