首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Asp.net MVC2中通过Ajax调用处理UnauthorizedRequest

在Asp.net MVC2中通过Ajax调用处理UnauthorizedRequest,可以采用以下步骤:

  1. 创建一个自定义的UnauthorizedRequestAttribute属性,继承自FilterAttribute类,并重写OnAuthorization方法。
代码语言:csharp
复制
public class CustomUnauthorizedRequestAttribute : FilterAttribute, IAuthorizationFilter
{
    public void OnAuthorization(AuthorizationContext filterContext)
    {
        if (filterContext.Result is HttpUnauthorizedResult)
        {
            filterContext.Result = new JsonResult
            {
                Data = new { success = false, message = "Unauthorized" },
                JsonRequestBehavior = JsonRequestBehavior.AllowGet
            };
            filterContext.HttpContext.Response.StatusCode = 401;
        }
    }
}
  1. 在需要进行Ajax调用的控制器或方法上添加自定义的UnauthorizedRequestAttribute属性。
代码语言:csharp
复制
[CustomUnauthorizedRequest]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult AjaxMethod()
    {
        if (!User.Identity.IsAuthenticated)
        {
            return new HttpUnauthorizedResult();
        }

        // Do something

        return Json(new { success = true, message = "Success" }, JsonRequestBehavior.AllowGet);
    }
}
  1. 在前端页面中使用Ajax调用需要进行权限验证的方法,并处理返回的Unauthorized状态码。
代码语言:javascript
复制
$.ajax({
    url: "/Home/AjaxMethod",
    type: "GET",
    dataType: "json",
    success: function (data) {
        if (data.success) {
            // Do something
        } else {
            // Handle unauthorized
        }
    },
    error: function (xhr, textStatus, errorThrown) {
        if (xhr.status === 401) {
            // Handle unauthorized
        }
    }
});

通过以上步骤,可以在Asp.net MVC2中通过Ajax调用处理UnauthorizedRequest。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券