1

プロジェクトで Web Api 2 Auth テンプレートを使用しています。クライアントが Api キーでリクエストしたときにユーザー ID を取得したいと考えています。私の質問は:

1 API クライアント ユーザーの ID を取得するにはどうすればよいですか。

- 正しいか間違っているかは、Api 要求を通じて解決されますか?

-または、http ヘッダーの userId を直接取得しますか?

-または、Api キーを使用してデータベースからクエリしますか?

2 ApiController から継承した MyApiController を作成し、クレームを取得したいので、コードを記述します。

protected override void Initialize(HttpControllerContext controllerContext)
   { 
    base.Initialize(controllerContext);
    var principal = Request.GetRequestContext().Principal as ClaimsPrincipal;
    CorpId = (from c in principal.Claims where c.Type.Contains("CorpId") select c.Value).FirstOrDefault();
    UserId = (from c in principal.Claims where c.Type.Contains("UserId") select c.Value).FirstOrDefault();
   }

MyApiController でクレームが null であることがわかりました。しかし、アクションコントローラーでそれを行うと、うまくいきましたか?

4

1 に答える 1