私は本質的にはthisです。しかし、私が組み込みのAuthorizeAttributeを使用するたびに、MVCフレームワーク(私が推測している)は、ユーザーが適切な役割を持っているかどうかを判断するために私のプリンシパルを決して見ません。それは、app_dataディレクトリに新しいMDFファイルを作成しようとし続け、特権を持たないために爆発します。カスタムフォーム認証+ MVC3 + AuthorizeAttribute
これは予期される動作で、私自身のAuthorizeAttributeを取得してプリンシパルを自分でチェックする必要がありますか?
別の奇妙な振る舞いは、私がシングルサインオンしている同じドメインに2つのサイトがあることです。いずれのサイトでも、同じクラスライブラリを使用してAuthenticateRequestのカスタムプリンシパルを再作成しています。プリンシパルが各サイトで正しく設定されていることをデバッグするときに表示されます。ただし、サイト1(ユーザーに認証するもの)は、AuthorizeAttributeを持つアクションを呼び出すとMDFファイルを作成しようとしていますが、これは完全に動作しますが、サイト2はMDFファイルを作成しようとしています。
私はいくつかの情報を見つけたと思います。私のカスタムプリンシパルオブジェクトは、Global.asaxファイル内のPostAuthenticateRequestメソッドでRolePrincipalに変更されています。カスタムプリンシパルセットロジックをPostAuthenticateRequestメソッドに移動した場合。すべて動作しますが、他のサイトでこれを行う必要はありません。web.configファイルの違いはわかりません。ですから、私がやりたいことは、私のプリンシパルをRolePrincipalオブジェクトに変更して、それを無効にすることだけです。 –