技術: ASP.Net Web API 2 認証。
IDE : Visual Studio 2013 で SPA テンプレートを使用しています。
ストーリー: 1 つの Get メソッド (コードを参照) を持つコントローラーを追加し、「System.Threading.Thread.CurrentPrincipal.Identity.Name」を出力するためにテストを実行しました。最終的なゲームは、API を呼び出すクライアントの ID を見つけることです。
質問: ID が空で表示されるのはなぜですか? 呼び出しが別のスレッドで処理されるという事実に関連していますか? トークン (クライアントがログイン時に受け取ったもの) はリクエストの一部であり、認証に使用されていますか?
わかりやすくするために短くまとめてみましたので、さらに詳しい情報が必要な場合はお知らせください。
public class abcController : ApiController
{
// GET api/abc
public IEnumerable<string> Get()
{
return new string[]
{ System.Threading.Thread.CurrentPrincipal.Identity.Name.ToString(),
"My Try"
};
}
わかりました、回避策を見つけました(解決策ではありません)。基本的に、この行「config.SuppressDefaultHostAuthentication();」を削除します。 http://forums.asp.net/p/1944393/5594350.aspx?Re+Web+API+2+how+do+I+find+the+identity+of+an+authenticated+user+