2013-05-24 2 views
0

사용자 ID별로 사용자 역할을 얻는 가장 좋은 방법은 무엇입니까? 그것에 직접적인 방법이 없습니다? System.Web.Security.Roles는 현재 로그인 한 사용자의 역할을 바로 사용할 수있는 방법을 제공하지만 내 관리자가 자신의 ID 또는 사용자 이름으로 다른 사용자의 역할에 액세스 할 수있게하려고합니다.SimpleMembershipProvider GetRoleByUserID?

답변

0

당신은 (이 ExtendedMembershipProvider에서 상속으로 당신은 또한 SimpleMembershipProviderMembership 캐스팅 수)

((ExtendedMembershipProvider)Membership).GetUserNameFromId(userId) 

으로, 예를 들어, 사용자 ID에서 사용자 이름을 얻을 수 있습니다.

은 그럼 당신은 사용할 수 있습니다

  • Roles.GetUsersInRole(roleName)이 이름에 의해 주어진 역할의 모든 사용자를 나열합니다.
  • Roles.GetRolesForUser(userName)은 (또한 이러한 결과와 함께 작동하도록 WebSecurity.GetUserId(userName)으로, 예를 들어, 사용자 이름에서 사용자 ID를 얻을 수 있습니다) 지정된 이름

에 대한 모든 역할 이름을 나열합니다.

있는 템플릿 계정 모델로 UsersContext를 사용하여, 사용자 ID에 대한 사용자 이름을 사용하려면 다른 방법이 있습니다 :

string username = context.Users.Where(x=>x.userid == userid).FirstOrDefault().UserName; 

하나 이상의 사용자 조회를 수행하는 경우에 특히 유용 할 수 있습니다, 또는 이미 컨텍스트가 열려 있어야합니다.