【发布时间】:2013-05-20 08:15:40
【问题描述】:
通过用户 ID 获取用户角色的最佳方式是什么?没有直接的方法吗? System.Web.Security.Roles 提供了获取当前登录用户角色的直接方法,但我希望我的管理员用户通过他们的 id 或用户名访问其他用户角色。
【问题讨论】:
标签: asp.net-mvc roles simplemembership
通过用户 ID 获取用户角色的最佳方式是什么?没有直接的方法吗? System.Web.Security.Roles 提供了获取当前登录用户角色的直接方法,但我希望我的管理员用户通过他们的 id 或用户名访问其他用户角色。
【问题讨论】:
标签: asp.net-mvc roles simplemembership
您可以从 userId 获取用户名,例如使用
((ExtendedMembershipProvider)Membership).GetUserNameFromId(userId)
(您也可以将Membership 转换为SimpleMembershipProvider,因为它继承自ExtendedMembershipProvider)。
那么你可以使用:
Roles.GetUsersInRole(roleName) 将按用户名列出给定角色中的所有用户。Roles.GetRolesForUser(userName) 将列出给定用户名的所有角色名称(您也可以从用户名中获取 userId,例如使用WebSecurity.GetUserId(userName) 来处理这些结果)。
还有另一种获取userId的userName的方法,使用带有模板帐户模型的UsersContext,即:
string username = context.Users.Where(x=>x.userid == userid).FirstOrDefault().UserName;
如果您正在执行多个用户查找,或者已经打开了上下文,这会特别有用。
【讨论】: