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

asp.net-mvc – 在asp.net MVC中授权属性和jquery AJAX

发布时间:2020-12-15 18:38:55 所属栏目:asp.Net 来源:网络整理
导读:我使用jquery ajax函数提交表单。 用户必须登录,否则他们必须重定向到登录页面。我已经使用Authorize()属性。 [Authorize]public ActionResult Creat(){....} 如果用户没有将操作返回登录页面登录到jquery的ajax函数,并且它显示在同一页面上,但是我想将用
我使用jquery ajax函数提交表单。
用户必须登录,否则他们必须重定向到登录页面。我已经使用Authorize()属性。
[Authorize]
public ActionResult Creat()
{
....
}

如果用户没有将操作返回登录页面登录到jquery的ajax函数,并且它显示在同一页面上,但是我想将用户重定向到登录页面。
有什么解决方案吗?

解决方法

工作实例: https://github.com/ronnieoverby/mvc-ajax-auth

重要部分:

AjaxAuthorizeAttribute:

using System.Web.Mvc;

namespace MvcApplication1
{
    public class AjaxAuthorizeAttribute : AuthorizeAttribute
    {
        protected override void HandleUnauthorizedRequest(AuthorizationContext context)
        {
            if (context.HttpContext.Request.IsAjaxRequest())
            {
                var urlHelper = new UrlHelper(context.RequestContext);
                context.HttpContext.Response.StatusCode = 403;
                context.Result = new JsonResult
                {
                    Data = new
                    {
                        Error = "NotAuthorized",LogOnUrl = urlHelper.Action("LogOn","Account")
                    },JsonRequestBehavior = JsonRequestBehavior.AllowGet
                };
            }
            else
            {
                base.HandleUnauthorizedRequest(context);
            }
        }
    }
}

Javascript:

$(function () {
        $(document).ajaxError(function (e,xhr) {
            if (xhr.status == 403) {
                var response = $.parseJSON(xhr.responseText);
                window.location = response.LogOnUrl;
            }
        });
    });

使用控制器中的属性:

[AjaxAuthorize]
    public ActionResult Secret()
    {
        return PartialView();
    }

做一些ajax:

@Ajax.ActionLink("Get Secret","Secret",new AjaxOptions { UpdateTargetId = "secretArea",})

<div id="secretArea"></div>

(编辑:李大同)

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

    推荐文章
      热点阅读