编辑:我改变了我的方法。现在我正在使用 MessageHandlers。感谢 Raciel,他指出了挖掘的方向。
这些链接对我非常有用: MessageHandlers overview Using own Principal classes
我有一个 WebApi 项目,需要为其提供自定义授权。特殊令牌对象被添加到来自前端的每个请求。像这样的东西:
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 序列化自定义对象?
谢谢你。