【问题标题】:SimpleMembershipProvider GetRoleByUserID?SimpleMembershipProvider GetRoleByUserID?
【发布时间】:2013-05-20 08:15:40
【问题描述】:

通过用户 ID 获取用户角色的最佳方式是什么?没有直接的方法吗? System.Web.Security.Roles 提供了获取当前登录用户角色的直接方法,但我希望我的管理员用户通过他们的 id 或用户名访问其他用户角色。

【问题讨论】:

    标签: asp.net-mvc roles simplemembership


    【解决方案1】:

    您可以从 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;
    

    如果您正在执行多个用户查找,或者已经打开了上下文,这会特别有用。

    【讨论】:

      猜你喜欢
      • 2013-04-10
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      相关资源
      最近更新 更多