【问题标题】:MVC 5 roles based authentication with mvc 5.1.0使用 mvc 5.1.0 进行基于 MVC 5 角色的身份验证
【发布时间】:2014-02-10 21:12:17
【问题描述】:

我在项目中使用基于角色的身份验证时遇到了问题。

我已经设置了一些角色并将它们链接到一个用户。

这行得通:

 [Authorize]    
public class UsersController : Controller
{}

如果我没有登录,它会要求我登录。

但是,如果我将其更改为:

 [Authorize(Roles = "ManageUsers")]    
public class UsersController : Controller
{}

我尝试从具有该角色的用户访问它它要求我登录。

所以我做了一些观察,发现了这个帖子:Link,他们建议添加:

 <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>

在我的网络配置中。我这样做了,然后它允许我访问控制器。但我注意到,无论我是否担任该角色,它都可以让我访问控制器。

我正在为我的项目使用 Cookies 身份验证。所以我认为我对不同类型的身份验证感到困惑。

public void ConfigureAuth(IAppBuilder app)
    {
        // Enable the application to use a cookie to store information for the signed in user
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            ExpireTimeSpan = TimeSpan.FromMinutes(5),
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login")
        });

所以我需要一些关于从这里去哪里的建议:

我只是想利用默认项目实现的角色,我已经填充了数据库等。我只是无法让我的过滤器工作。

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-identity owin role-base-authorization


    【解决方案1】:

    我认为我对不同类型的 身份验证。

    我同意。首先,身份验证与登录有关。一旦用户登录,他们就会被验证。

    根据用户角色限制对控制器操作或其他资源的访问称为授权。很多时候,人们将这两个安全问题统称为auth。但是,在我看来,您已经实施了身份验证,并且在授权方面遇到了问题。

    据我所知,您的 web.config 中的 roleManager 部分与您正在使用的 Microsoft.AspNet.Identity 不兼容。如果您在某处设置了UserManager&lt;T&gt; 类,那么您应该使用Microsoft.AspNet.Identity 角色系统,而不是旧的roleManager。因此,请从您的 web.config 中删除该部分。

    听起来 Microsoft.AspNet.Identity 正在阻止对您的操作进行基于角色的访问,因为其中的某些内容设置不正确。该库有自己的名为 RoleManager 的类,类似于用于管理角色的 UserManager。您没有在问题中提供足够的信息让任何人帮助您确定问题的确切原因。但是,如果您对 Microsoft.AspNet.Identity RoleManager 进行一些研究,那么您应该能够自己调试问题。祝你好运。

    【讨论】:

      猜你喜欢
      • 2013-11-07
      • 2016-03-07
      • 2015-04-06
      • 2023-03-26
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 2015-06-07
      • 2014-08-31
      相关资源
      最近更新 更多