私のフォーム認証にロールを使用しようとしています.Global.asax Application_AuthenticateRequestメソッドを使用して、クッキーからロールを取得しても問題ありません。しかし、Web.Configでどのプロバイダを設定するのか分かりません。私は、単にクッキー、SQLサーバーを使用したくない。CookieとSQLを使用しないASP.NET MVC3ロール認証?
この行はIPrincipalを作成します(ロールはロールを持つ文字列配列である)
Context.User = new GenericPrincipal(Context.User.Identity, roles);
最終目標は、[承認(ロール=「管理」)]のようなDataAnnotationsとIsInRoleメソッドの作業を取得することです。
また、IsInRoleメソッドは、global.asaxで使用されていても別の場所では正常に動作します。何故なの?
Web.configファイルは、今のように構成されています
<roleManager defaultProvider="DefaultRoleProvider" cacheRolesInCookie="true">
とDefaultProviderは悲しいことがない本当の理由は、いくつかの空のSQL DBに接続されています。
これも可能ですか?
ありがとうございました。
ここで第二の答えからコードを使用してクッキーの役割を取得する:http://stackoverflow.com/questions/1385042/asp-net-mvc-forms-authentication-authorize-attribute-simple-roles – Michael
ビジュアルスタジオのバグ、または何かが原因で問題が発生しました。私が上で述べたポストのコードは、Webアプリケーションに何も問題がないときと同じように動作します。 – Michael