0

这是我的 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
            }

        }
    }
4

1 回答 1

2

无法从 OnActionExecuting 传回值,但您可以在 OnActionExecuting 事件中设置属性,该事件可由导致它触发的方法读取。

在您的 OnActionExecuting 事件中,在请求对象上创建一个新属性。

context.Request.Properties["X"] = variableX;

这将由导致事件触发的方法读取

if (this.Request.Properties.ContainsKey("X"))
{
string x = this.Request.Properties["X"].ToString();

    // Use x here
}

戴夫

于 2015-07-31T11:20:11.677 回答