フォーム認証にロールを使用しようとしています。global.asax Application_AuthenticateRequest メソッドが Cookie からロールを取得しています。これは正常に機能します。しかし、Web.Config で構成するプロバイダーがわかりません。SQL サーバーは使用したくありません。Cookie のみを使用します。
この行は IPrincipal を作成します: (roles はロールの文字列配列です)
Context.User = new GenericPrincipal(Context.User.Identity, roles);
最終的な目標は、[Authorize(Roles = "Admin")] のような DataAnnotations と IsInRole メソッドを機能させることです。
また、IsInRole メソッドは、global.asax で使用すると正常に機能しますが、他の場所では機能しません。なぜだめですか?
今のところ Web.config は次のように構成されています。
<roleManager defaultProvider="DefaultRoleProvider" cacheRolesInCookie="true">
DefaultProvider は悲しいことに、本当の理由もなく空の SQL データベースに接続されています。
これは可能ですか?
ありがとう。