加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – Asp.net Mvc自定义机制来处理未经授权的请求

发布时间:2020-12-15 18:31:31 所属栏目:asp.Net 来源:网络整理
导读:对于我的网站,我想要安全控制器(或操作)的以下行为 如果用户将正常的请求重定向到登录页面(我很容易做到) 如果请求是Ajax类型Request.IsAjaxRequest()== true,返回状态码401 我如何为此创建一个过滤器? 解决方法 public class MyCustomAuthorize : Author
对于我的网站,我想要安全控制器(或操作)的以下行为

如果用户将正常的请求重定向到登录页面(我很容易做到)

如果请求是Ajax类型Request.IsAjaxRequest()== true,返回状态码401

我如何为此创建一个过滤器?

解决方法

public class MyCustomAuthorize : AuthorizeAttribute
{
        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            //if ajax request set status code and end Response
            if (filterContext.HttpContext.Request.IsAjaxRequest())
            {
                filterContext.HttpContext.Response.StatusCode = 401;
                filterContext.HttpContext.Response.End();
            }

            base.HandleUnauthorizedRequest(filterContext);
        }
}

创建如上所述的过滤器,如果通过ajax请求,它将返回未经授权的请求的状态码401。

如果你使用jQuery,你可以做如下

jQuery.ajax({
statusCode: {
    401: function() {
      alert('unauthrized');
    },/*other options*/
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读