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

如何在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。

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

相关·内容

MVC 3.0 的新特性 摘要

控制器的改进 全局的 Action 过滤器 有的时候你希望能够在在一个 Action 方法执行之前或者执行之后执行一些处理逻辑,在 ASP.NET MVC2 中,提供了 Action 过滤器,允许对特定控制器的...: Scott Guthrie's blog on the MVC 3 Preview Filtering in ASP.NET MVC 新的 ViewBag 属性 MVC2 中的控制器支持 ViewData...HttpStatusCodeResult JavaScript 和 Ajax 改进 默认情况下,在 MVC3 中,Ajax 和验证使用不引人注目的 unobtrusive 的 JavaScript...jQuery.Validate 插件完成,如果你希望使用 MVC2 的行为,你可以在 web.config 中通过配置来关闭 unobtrusive ,更多的信息参考下列资源: Basic introduction...在请求验证中的粒度控制 ASP.NET MVC 内建了请求验证机制来自动帮助处理类似跨站攻击和 HTML 注入等等。

2.6K10

ASP.NET MVC 2示例Tailspin Travel UI层分析

Tailspin Travel设计的技术比较多,今天我们来看看界面(UI)上的技术,在UI层上来说主要采用的技术是ASP.NET MVC2和ASP.NET DynamicData框架。...,以及jQuery和ASP.NET Ajax配合的相关内容,可以参考 Asp.net MVC2 使用经验,性能优化建议学习。...如果字段类型为 nvarchar(10),那么就不允许超过 10 个字符;如果字段类型不是 nvarchar(10),而是 varchar(10),此时六个汉字也会通过验证,只是无法入库罢了,会返回错误...Dynamic Data还有一个快速开发的基础是脚手架,脚手架是一种机制,通过脚手架,我们不必再为每一个表的增加、查看、修改做不同的页面,因为脚手架会自动生成这些页面。...{ get; set; }         }     } DynamicData非常的灵活,Tailspin Travel用来对付管理后台的开发方面具有非常高的效率,在前台使用MVC2

1.6K90
  • ABP入门系列(8)——Json格式化

    Mvc中的JsonResult Asp.net mvc中默认提供了JsonResult来处理需要返回Json格式数据的情况。...也可以通过调用return AbpJson()来指定参数进行json格式化输出。 仔细观察会发现日期格式还是怪怪的。2017-01-23T00:00:00,多了一个T。...查看AbpJsonReult源码发现调用的是Newtonsoft.Json序列化组件中的JsonConvert.SerializeObject(obj, settings);进行序列化。...总结 本节主要讲解了以下几个问题: Asp.net中JsonResult的实现。 ABP对JsonResult的再封装,支持指定大小驼峰及是否缩进进行Json格式化。...Web层通过拓展AbpJsonResult,指定时间格式。 前端,通过将Json日期转换为js的Date类型,再格式化输出。 WebApi,通过在Moduel中指定DateFormatString。

    1.8K90

    ASP.NET MVC 5 - 给数据模型添加校验器

    您可以在一个地方 (模型类) 中以声明的方式指定验证规则,这个规则会在应用程序中的任何地方执行。 让我们看看您如何在本电影应用程序中,使用此验证支持。...第二个 ([HttpPost]) 方法处理form的请求。第二种Create方法 (HttpPost 版本) 调用 ModelState.IsValid来检查是否有任何的Movie验证错误。...下图显示了如何禁用 Internet Explorer 中的 JavaScript。 ? ? 下图显示了如何在火狐浏览器中禁用 JavaScript。 ?...此Helper旁边是对Html.ValidationMessageFor方法的调用。这两个Helper方法将处理由控制器传递到视图的模型对象(在这里是,Movie对象)。...欲了解更多信息,请参阅see Brad  Wilson's的ASP.NET MVC 2 Templates。 (虽然写的MVC2,本文仍然适用于ASP.NET MVC 5的当前版本。)

    9.1K70

    Asp.net mvc 知多少(一)

    Controller - 控制器职责在于处理传入的请求。它接受用户通过视图的输入,然后对用户输入的数据模型进行处理,最终通过视图将结果渲染给用户。...Presenter - 职责在于处理视图上的UI行为事件。通过View接收用户输入,然后通过Model处理用户数据,然后将结果传回view。...同时通过数据访问层(DAL)将数据持久化到数据库。这一层被Controller直接调用去处理用户输入并将结果返回到View Data Access Layer - 提供对象去访问和操作数据库。...它通过View接收用户输入,然后通过Model的帮助去处理用户数据并将结果返回给View. Q9. ASP.NET MVC相对于Web Forms的优势有哪些? Ans....SP1运行 基于WebForm引擎的MVC模式架构 Html Helpers Ajax helpers Routing Unit Testing ASP.NET MVC2 2010-3-10发布 基于

    2.3K70

    Msdn 杂志 asp.net ajax 文章汇集

    loc=zh 使用 AJAX Extensions 客户端进行 Web 服务调用:ASP.NET 2.0 AJAX Extensions 使得在浏览器中运行的客户端 JavaScript 实现了无缝的...在对各个问题的讨论过程中,还将向您展示如何通过 ScriptManager 对选项进行调整。...简而言之,使用部分呈现,您无需更改 ASP.NET 应用程序的底层体系结构——它是实现 AJAX 某些最佳元素(如站点页面的无闪烁更新)的便捷途径。...其中有一个由应用程序特定服务组成的后端,通常只是可调用 AJAX 脚本的外层,其下方是业务逻辑所在和发挥作用的系统中间层。服务与前端通过 HTTP 交换数据,使用多种格式传递参数和返回值。...在 Silverlight 控件上添加处理程序、设置属性和调用方法的过程与在其他任何控件上的处理过程完全相同。

    2.7K80

    Asp.Net MVC3 简单入门第一季(二)详解Asp.Net MVC3项目

    前言 在上一篇文章Asp.Net MVC3 简单入门第一季(一)环境准备中我简单介绍了Asp.Net MVC3项目的安装和第一个Asp.Net MVC3项目的基本情况。...第一节:Asp.Net MVC3项目介绍 让我们先看一下,一个普通的Asp.Net MVC3项目的样例,如下图所示 跟WebFrom还是有区别的,如果你已经了解Asp.Net MVC2的话,那就感觉异常熟悉了...看下表所示的就是Asp.Net MVC3中各个文件夹的作用。...第二节:Asp.Net MVC的请求处理模型 在上一篇中我们也简单做了个小例子,直接添加一个Controller,然后在Action上添加一个View,直接运行,然后就在我们面前呈现了一个普通的Html...然后MVC经过处理调用我们的Action执行。

    96410

    .NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRFCSRF)攻击处理

    而我们这一章就来说道说道如何在ASP.NET Core中处理“跨站请求伪造(XSRF/CSRF)攻击”的,希望对大家有所帮助 写在前面 上篇文章发出来后很多人就去GitHub上下载了源码,然后就来问我说为什么登录功能都没有啊...跨站请求伪造(XSRF/CSRF)怎么处理? 既然跨站请求伪造(XSRF/CSRF)有这么大的危害,那么我们如何在ASP.NET Core中进行处理呢?...ASP.NET Core MVC在Ajax中处理跨站请求伪造(XSRF/CSRF)的注意事项 ValidateAntiForgeryToken 在进行Token验证的时候Token是从Form里面取的。...,后面引出了在ASP.NET Core中如何对其进行处理的!...同时给大家说了在Ajax处理中的注意事项,希望能对大伙有所帮助!另外如果你有不同的看法欢迎留言,或者加入NET Core千人群637326624讨论。

    4K20

    Ajax之一 简介篇

    1.1.2 Ajax相关基础知识​ 要想通过客户端编程以创建Ajax页面,需要先了解JavaScript、Dom以及XMLHttpRequest对象(它处理那些从客户端发送到服务器的请求)的相关知识。...虽然Asp.NetAJAX为需要创建Ajax应用程序的客户端脚本的开发人员提供了一大堆的好处,但它却不只是编写JavaScript以对服务器端发出异步调用那么简单。...n Asp.Net AJAX控件集(Asp.Net AJAX Control Toolkit) 这个包中包含了大量的服务器组件,它们可以让你不费吹灰之力就得到令人吃惊的Ajax功能...Ajax的基本原理为:XmlHttpRequst从服务器(数据服务器或Web服务器)获取数据到客户端的内存中,然后JavaScript根据实际需要对这些资源进行处理,并通过CSS和DOM实现界面布局呈现给浏览器...Asp.Net AJAX服务器端程序集不仅接收和处理XMLHttpRequest调用,而且还实现了一些方便使用的服务器端控件。因此,程序员不必花大力气就可以让客户端与服务器端交换数据了。

    8910

    asp:ScriptManager

    概述 ScriptManager 控件管理用于 Microsoft ASP.NET AJAX 页面的客户端脚本。...在页面中,必须使用 ScriptManager 控件来使下列 Microsoft ASP.NET AJAX 的特性可用: Microsoft AJAX 库的客户端脚本功能,以及任何要发送到浏览器的定制脚本...注意: 任何在页面中由 ScriptManager 控件注册的脚本和所有事件处理脚本都必须包含在页面中的 元素中,否则,脚本将不会被注册或执行。...1.6 在客户端脚本中使用认证和个性化服务 Microsoft AJAX 库包含了直接从 Javascript 中调用 ASP.NET 2.0 窗体认证和个性化应用服务的代理类。...2 添加 ScriptManager 控件 直接将 ScriptManager 控件从工具箱中拖到页面的 元素中即可得到如下的元素引用,这样,在它所有的页面就可以使用 ASP.NET AJAx

    13.1K30

    在ASP.NET Core下使用SignalR技术

    一、前言   上次我们讲到过如何在ASP.NET Core中使用WebSocket,没有阅读过的朋友请参考 WebSocket in ASP.NET Core 文章 。...就是让客户端(Web页面)和服务器端可以互相通知消息及调用方法,当然这是实时操作的。...二、SignalR目前情况   我们知道在ASP.NET Core 1.0.x 版本中并没有包含SignalR,但是SignalR技术计划集成在ASP.NET Core 1.2版本中,并且它的开发团队还要使用...TypeScript对它的javascript客户端进行重写,服务端方面也会贴近ASP.NET Core的开发方式,比如会集成到ASP.NET Core依赖注入框架中。   ...三、集成SignalR   当然ASP.NET Core 1.2离正式发布还有一段时间,目前想集成SignalR都不是现成的方案,我们要通过手动的方式集成SignalR。

    1.6K20

    Ajax之二 Ajax基础

    虽然Asp.Net AJAX尽量隐藏了Ajax的技术细节,但是要想明白Asp.Net AJAX能干什么,或者说要想扩展这个框架以便创建所需要的高级应用程序,那么就必须拥有关于Ajax的一些更加深入的知识...下面介绍两个Ajax常用的核心对象,通常用来向Web应用程序提供Ajax行为。即XMLHttpRequest对象,主要负责生成异步的HTTP调用。...POST命令发送的数据,在Asp.Net中要使用Request.Form属性来进行读取,而不是针对GET请求的Request.QueryString属性。 ​...项目二:建立使用Xml格式的AJAX的页面程序 1.建立一个Asp.Net程序,可以使用动态页面也可以使用静态页面,此处使用的是静态页面,名字为SimpleAjax.htm,代码如程序清单2-2所示: ​..., //第一个参数说明你请求服务器的方式,第二个参数确定你请求的服务器端的URL,第三个参数说明处理方式是否为异步处理 //这里的异步提交是真正体现了Ajax

    9710

    ASP.NET 调味品:AJAX

    AJAX 使您能够通过 JavaScript 调用执行服务器端方法,而不需要刷新浏览器。将它视为发生于用户后台的小型请求/响应。...Microsoft ASP.NET 2.0 通过客户端回调功能(英文)引入了独具特色的异步回调,并且最近宣布(英文)代号为“Atlas”的 AJAX 正在实现中。...其次,在页加载事件期间,必须通过调用 Ajax.Utility.RegisterTypeForAjax 来注册包含这些函数的类。听起来似乎有些复杂,但请不必担心;实际上只需要在代码中多加两行。...完成服务器端处理时,Ajax.NET 调用指定的回调函数 GetMessageOfTheDay_CallBack,并向其传递由服务器端返回值组成的响应。...最后剩余的服务器端步骤是通过调用 RegisterTypeForAjax 使用 Ajax.NET 来注册包含上述方法的类(在此情况下,是我们的下面的代码)。

    3.7K50

    ASP.NET Core基于WebSocket实现消息推送实战演练

    一、课程介绍 很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。...今天我们要通过使用ASP.Net Core WebSocket技术来实现服务端向客户端实时推送消息(Real-Push-Message)。 一句话总结今天我们实现的目标?...如何在ASP.NET Core中使用WebSocket技术来实现服务端向指定的客户端实时推送消息。 废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。...4、ASP.NET Core中WebSocket发送消息 ? ? ? ?...它还可提供简单的远程过程调用应用模型。 如果大家感兴趣, 可以学习一下阿笨的《ASP.NET Core基于SignalR实现消息推送实战演练》课程。

    4.2K10

    动态We API(ABP官方文档翻译)

    我们可以为一个特定方法重写它,如之前所描述的那样。   API管理器 所有的动态web api controllers默认对API管理器是可见的(例如他们都在Swagger中可用)。...动态Javascript代理 你可以在javascript通过ajax使用动态创建的web api controller。...所以,你可以在javascript中像一个function一样调用动态web api controller的action。...服务方法内部使用abp.ajax。如果需要,他们处理错误并显示错误信息。 AJAX参数 你可能会想传递自定义ajax参数给代理方法。...然后,我们可以作为常见的javascript函数调用它的函数。注意,我们注册了success处理方法(而不是done),因为在augularhttp服务中也是如此定义的。

    2.9K30
    领券