0

編集:アプローチを変更しました。現在、MessageHandlers を使用しています。掘る方向を教えてくれた Raciel に感謝します。

私にとって非常に役立つこれらのリンク: MessageHandlers の概要 Using own Principal classes


WebApi プロジェクトがあり、それにカスタム認証を提供する必要があります。フロントエンドからの各リクエストには、特別な Token オブジェクトが追加されます。そんな感じ:

SendApiRequest: function (controller, action, data, successCallback, failureCallback) {
    var url = ROUTER.GetApiUrl(controller, action);

    data.Token = TOKEN;

    jQuery.ajax({
        type: 'POST',
        dataType: 'json',
        url: url,
        data: data,
        success: function (result) {
            if (typeof successCallback == 'function') {
                successCallback(result);
            }
        },
        error: function (result) {
            if (typeof failureCallback == 'function') {
                failureCallback(result);
            }
        }
    });}

AuthorizationAttribute があり、リクエストから Token オブジェクトをシリアル化する必要があります。しかし、それを自動的に行う方法が見つかりません。

public class CustomAuthorizationAttribute : AuthorizeAttribute
{
    public override void OnAuthorization(HttpActionContext context)
    {
        UserToken token = null;

        //HOW TO SERIALIZE token object from context?

    }
}

UserToken クラスは次のようになります。

public class UserToken
{
    public Int64 TokenID;
    public int UserID;
    public string TokenValue;
    public string IP;
    public string Hash;

    public DateTime CreatedOn;
    public DateTime ActionOn;
}

問題は、HttpActionContext からカスタム オブジェクトをシリアル化する方法です。

ありがとうございました。

4

1 に答える 1