Web API への呼び出しをインターセプトする AuthorizeAttribute クラスがあります。そこで、与えられたセッションからユーザーを検証します。
ユーザーが正しい資格情報を持っている場合、資格情報のチェック中に取得された userId をリクエスト本文に追加したいと思います。いくつか試してみましたが、IsAuthorized のリクエストボディにアクセスできないようです?
私はこのようなことをしようとしています:
public class AuthorizeUserAttribute : AuthorizeAttribute
{
protected override bool IsAuthorized(HttpActionContext httpContext)
{
// Pick up session
var sessionKey = httpContext.Request.Headers.FirstOrDefault(h => h.Key == "session").Value;
// If session vas valid, get userid from session and add it to the request body somehow
// so the controller gets userid attached.
return true;
}
}
その後、ターゲット コントローラーが呼び出されます。
public Response GetCandy( CandyRequest candy )
{
// Wohoo, the user was accepted and i've got the user id already in the argument object.
var userId = candy.UserId;
}