这是我的API动作过滤器,我希望能够返回ccaccount obj
对调用方法的良好登录结果
任何想法如何?
感谢
public class CAPILoginFilter : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext i_actionContext)
{
CRequestBase request = (CRequestBase)i_actionContext.ActionArguments["i_request"];
CCAccount account = CAPILogin.AccountIDGetOBJ(request.UserName, request.Password);
if(account == null)
{
throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Unauthorized));
}
else
{
//return account object to calling method here
}
}
}
答案 0 :(得分:1)
无法从OnActionExecuting传回值,但您可以在OnActionExecuting事件中设置属性,该属性可由导致其触发的方法读取。
在OnActionExecuting事件中,在请求对象上创建一个新属性。
context.Request.Properties["X"] = variableX;
这将导致事件像这样触发
的方法可读if (this.Request.Properties.ContainsKey("X"))
{
string x = this.Request.Properties["X"].ToString();
// Use x here
}
戴夫