首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证OnActionExecuting方法

如何验证OnActionExecuting方法
EN

Stack Overflow用户
提问于 2019-02-05 13:38:10
回答 1查看 330关注 0票数 0

如何交叉检查,当我的OnActionExecuting返回True时,它是否允许我执行控制器方法,否则它会拒绝它?

代码语言:javascript
复制
public class SessionExpireAttribute: ActionFilterAttribute
    {
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            HttpContext ctx = HttpContext.Current;
            if (2 ==2)
            {
               // throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.OK));
                return (new HttpResponseException(new HttpResponseMessage(HttpStatusCode.OK)));
            }
            else
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Unauthorized));
                return;
            }
            base.OnActionExecuting(actionContext);
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-05 13:47:15

我认为您只需要在离开处理程序之前设置actionContext.Result属性。就像这样:

代码语言:javascript
复制
public class SessionExpireAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext actionContext)
    {
        // Adjust this if statement so it's executed hit if your special authentication has *failed*
        if (true)
        {
            actionContext.Result = new HttpUnauthorizedResult("You don't have access to this resource.");
        }

        base.OnActionExecuting(actionContext);
    }
}

如果在处理程序中没有执行任何操作,则控制器操作将正常执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54535716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档