我一直在使用基於角色的身份驗證在我的項目中遇到問題。MVC 5基於角色的mvc身份驗證5.1.0
我設置了一些角色並將它們鏈接到用戶。
這工作:
[Authorize]
public class UsersController : Controller
{}
如果我沒有登錄,它要求我登錄。
但是如果我將其更改爲:
[Authorize(Roles = "ManageUsers")]
public class UsersController : Controller
{}
我嘗試從與該角色它要求我登錄的用戶訪問它。
所以我做了一些goggling,我發現這個職位: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>
在我的網絡配置。我做了什麼,然後它允許我訪問控制器。但是我注意到,如果我擔任這個角色,它可以讓我訪問控制器。
我正在爲我的項目使用Cookie身份驗證。所以我認爲我在不同類型的認證之間感到困惑。
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")
});
所以我需要在哪裏何去何從一些建議:
我只是想利用它由默認的項目實施的角色,我已填充數據庫等等。我只是不能讓我的過濾器工作。