通过用户 ID 获取用户角色的最佳方法是什么?没有直接的方法吗?System.Web.Security.Roles 提供了获取当前登录用户角色的直接方法,但我希望我的管理员用户通过他们的 id 或用户名访问其他用户角色。
问问题
58 次
1 回答
0
您可以从 userId 获取用户名,例如
((ExtendedMembershipProvider)Membership).GetUserNameFromId(userId)
(您也可以Membership
转换为 a SimpleMembershipProvider
,因为它继承自 ExtendedMembershipProvider
)。
然后你可以使用:
Roles.GetUsersInRole(roleName)
将按用户名列出给定角色中的所有用户。Roles.GetRolesForUser(userName)
将列出给定用户名的所有角色名称
(您还可以从用户名中获取 userId,例如WebSecurity.GetUserId(userName)
使用这些结果)。
还有另一种获取 userId 的用户名的方法,将 UsersContext 与模板帐户模型一起使用,即:
string username = context.Users.Where(x=>x.userid == userid).FirstOrDefault().UserName;
如果您正在执行多个用户查找,或者已经打开了上下文,这将特别有用。
于 2013-05-25T16:21:38.677 回答