プロジェクトでロール ベースの認証を使用する際に問題が発生しています。
いくつかの役割を設定し、それらをユーザーにリンクしました。
これは機能します:
[Authorize]
public class UsersController : Controller
{}
ログインしていない場合は、ログインするように求められます。
ただし、次のように変更すると:
[Authorize(Roles = "ManageUsers")]
public class UsersController : Controller
{}
そして、そのロールを持つユーザーからアクセスしようとすると、ログインするように求められます。
だから私はいくつかのゴーグルをしました、そして私はこの投稿を見つけました:リンク そして彼らは追加することを提案しました:
<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")
});
だから私はここからどこへ行くべきかについていくつかのアドバイスが必要です:
デフォルトのプロジェクトで実装されているロールを利用したいだけで、データベースなどにデータを入力しました。フィルターを機能させることができません。