代码之家  ›  专栏  ›  技术社区  ›  Bartek Chyży

使用者IsInRole()始终仅在控制器中返回false

  •  2
  • Bartek Chyży  · 技术社区  · 7 年前

    如标题所示 User.IsInRole() 在控制器中始终返回false,但在视图中效果良好。此外,我无法设置 <roleManager enabled="true" /> ,因为在生成项目时出现以下错误

    在应用程序级别之外使用注册为allowDefinition='MachineToApplication'的节是错误的。此错误可能是由于未将虚拟目录配置为IIS中的应用程序所致。

    有什么建议吗?或者是否有其他方法来检查当前用户是否在角色中? (我试过了 Roles.IsUserInRole(User.Identity.Name, "Recruit") 但我得到了同样的结果)。我正在使用ASP。NET MVC 5和。网络标识6.2

    1 回复  |  直到 7 年前
        1
  •  2
  •   trailmax    7 年前

    Roles.IsUserInRole 是MembershipProvider的一部分。如果您使用的是Asp。Net标识,您需要使用 RoleManager ( MSDN )取而代之的是。

    原因是您可以使用 User.IsInRole -Identity framework支持此调用,它查看cookie,检查cookie中可用的角色。