【问题标题】:MVC 5 Role Based AuthenticationMVC 5 基于角色的身份验证
【发布时间】:2013-11-07 14:44:42
【问题描述】:

我正在尝试将我们的“管理员”页面锁定为仅限使用 Asp.net Identity 的管理员(我们正在 MVC5 中构建)。我可以让 [Authorize(Users="admin")] 工作,但不能让 [Authorize(Roles="Admin")] 工作。

我已经在 dbo.AspNetRoles 表中创建了角色,然后通过将用户 GUID 与 aspnetroles 表中的 ID 配对来关联 AspNetUserRoles 中的帐户。

我在以前的 MVC 版本中看到您必须进入 web.config 才能添加一些行。谁能帮我指出正确的方向?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-5 asp.net-identity role-based


    【解决方案1】:

    您是否已在 web.config 中指定要使用角色?

      <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
          <providers>
            <clear />
            <add name="AspNetSqlRoleProvider" connectionStringName="DefaultConnection" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
          </providers>
        </roleManager>
    

    【讨论】:

    • 你需要添加这个权限,目前不在那里你可以修改,对吗?
    • @RefractedPaladin 有时是,有时与创建文件的项目类型无关。
    • 如果您使用的是 ASP.NET Identity,这个答案将无济于事,这是 MVC 5 开箱即用的。
    • 使用 ASP.NET Identity 和 MVC 5,角色默认存储在 cookie 中。您可能需要注销并重新登录才能更新用户的角色。
    • @seanwoodward:如果我必须提供一个管理界面来为用户分配和取消分配角色,特别是在 MVC 5 中使用 ASP.NET Identity 怎么办?
    猜你喜欢
    • 2016-03-07
    • 1970-01-01
    • 2016-01-03
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 2021-11-22
    相关资源
    最近更新 更多