ASP.NET Web API アプリケーションを Web API 2 リリース候補に移植しています。このアプリケーションは、MessageHandler を使用して、HTTP ヘッダーを解析および復号化することにより、ユーザーを承認します。次に、適切な ClaimsPrincipal を作成し、 と の両方を設定HttpContext.Current.User
しThread.CurrentPrincipal
ます。
Web API 1.0 では、コントローラーはApiController.User
プロパティにアクセスして、以前にメッセージ ハンドラーで設定したプリンシパルを取得できました。Web API 2.0 では、User プロパティには、正しいGenericPrincipal
にもかかわらず、実質的に空白の が含まれています。Thread.CurrentPrincipal
これは意図的なものですか?Web API 2 のバグですか (非常に可能性があります)。おそらくプリンシパルを正しく設定していませんか?
ApiController.User
に直接行くよりも「より正しい」ように見えたので、私は使用してきましたが、それはThread.CurrentPrincipal
常に問題の可能な解決策です。