1

ASP.NET Web API アプリケーションを Web API 2 リリース候補に移植しています。このアプリケーションは、MessageHandler を使用して、HTTP ヘッダーを解析および復号化することにより、ユーザーを承認します。次に、適切な ClaimsPrincipal を作成し、 と の両方を設定HttpContext.Current.UserThread.CurrentPrincipalます。

Web API 1.0 では、コントローラーはApiController.Userプロパティにアクセスして、以前にメッセージ ハンドラーで設定したプリンシパルを取得できました。Web API 2.0 では、User プロパティには、正しいGenericPrincipalにもかかわらず、実質的に空白の が含まれています。Thread.CurrentPrincipal

これは意図的なものですか?Web API 2 のバグですか (非常に可能性があります)。おそらくプリンシパルを正しく設定していませんか?

ApiController.Userに直接行くよりも「より正しい」ように見えたので、私は使用してきましたが、それはThread.CurrentPrincipal常に問題の可能な解決策です。

4

1 に答える 1

0

しばらく時間がかかりましたが、これは Web API 2 の最終リリースで修正された RC の問題であることが判明しました。現在は正常に動作しています!

于 2013-11-24T22:48:33.337 に答える