2012-04-27 6 views
7

ASP.NET(MVCおよびWebAPI)では、FormsAuthenticationクッキーからのデータでUser Identityオブジェクトがどのように初期化されますか?ユーザーIDはどのように|アプリケーションライフサイクル中に設定されたプリンシパル

私がしたいのは、2種類の認証、つまりCookieベースとカスタムヘッダーベースの認証を使用することです。 AuthorizeAttributeクラスはUser.Identity.IsAuthorized()メソッドのみをチェックし、FormsAuthentication固有のコードは使用しないので、global.asaxかDelegatingHandlerのどちらであってもUser.Identityオブジェクトを手動で設定するだけです。

User.Identityを設定するにはどうすればよいですか?フレームワークはFormsAuthenticationを使用して自動的にどのように設定しますか?

答えて

1

ここにはrelated answerがあります。

IDは、ハンドラ、モジュール、またはGlobal.asaxで設定できます。リクエストライフサイクルのどの時点でも変更できますが、通常はPostAuthenticateRequestを使用するのが最適です。この時点でFormsAuthenticationは作業を完了し、HttpContext.Current.Userを補強または置き換えることができます。

+1

Aliostadによると、アイデンティティを設定したら、User.Controllerを追加すると、そのアイデンティティーはそれに及ぶでしょうか? –

0

ASP.NET MVCコントローラにはController.Userがありますが、Web APIにはありません。現在はrequestedが入れられています。

+1

できます: 'HttpContext.Current.User' –

+0

@Lolcoderこれは素晴らしいことではありません。これは、過去の静的/スレッド記憶域の日からのハングオーバーです。 **ユニットテストはできません**。 – Aliostad

関連する問題