プロジェクトで 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 であることがわかりました。しかし、アクションコントローラーでそれを行うと、うまくいきましたか?