asp.net-mvc – 在asp.net MVC中授权属性和jquery AJAX
发布时间:2020-05-23 13:28:49 所属栏目:asp.Net 来源:互联网
导读:我使用jquery ajax函数提交表单。 用户必须登录,否则他们必须重定向到登录页面。我已经使用Authorize()属性。 [Authorize]public ActionResult Creat(){....} 如果用户没有将操作返回登录页面登录到jquery的ajax函数,并且它显示在同一页面上,但是我想将用
|
我使用jquery ajax函数提交表单。
[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> (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 如何在不依赖NHibernate的情况下为每个请求
- asp-classic – 如何在Classic ASP中延迟响应
- asp.net-mvc – 使用与状态模式合并的域模型
- asp.net-mvc – 每个请求DbContext发生随机错误
- ASP.NET解决方案与类库项目
- asp.net – 忽略在IIS中为代码400(错误请求)配置的自定义错
- 如何在IIS10中正确启动asp.net应用程序
- asp.net – MVC 3 htmlhelper的扩展方法来包装内容
- asp.net-mvc – MVC会话过期而不是身份验证
- asp.net-mvc-3 – ASP.NET MVC重定向到没有物理重定向的操作
推荐文章
站长推荐
热点阅读
