首页
学习
活动
专区
工具
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。

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

相关·内容

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 MVC2ASP.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.netJsonResult的实现。 ABP对JsonResult的再封装,支持指定大小驼峰及是否缩进进行Json格式化。...Web层通过拓展AbpJsonResult,指定时间格式。 前端,通过将Json日期转换为js的Date类型,再格式化输出。 WebApi,通过在Moduel中指定DateFormatString。

    1.7K90

    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的当前版本。)

    9K70

    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.2K70

    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执行。

    95310

    .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

    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

    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 CoreWebSocket发送消息 ? ? ? ?...它还可提供简单的远程过程调用应用模型。 如果大家感兴趣, 可以学习一下阿笨的《ASP.NET Core基于SignalR实现消息推送实战演练》课程。

    4K10

    动态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.8K30

    用程序实现HTTP压缩和缓存

    Asp.Net开发Web应用时,为了减少请求次数和流量,可以在IIS里配置gzip压缩以及开启客户端缓存。...园子里已经有很多文章介绍了如何在IIS里开启压缩和缓存,但我想搞清楚该如何自己写代码来实现http压缩或者缓存,这样做的原因主要有下面两点: 1.IIS的版本不同,启用IIS的http压缩的方式也不同,...实现缓存:通过在response的header中加入ETag、Expires或LastModified,即可启用浏览器缓存。...下面我们创建一个小小的Asp.net Mvc2 App,然后逐步为它加入压缩和缓存。 首先新建一个Asp.net Mvc2的web application,建好后整个solution如下图: ?...ProecesRequest负责处理对css和js的请求,先判断资源是否在客户端浏览器缓存了,如果没有缓存,再读取css或js文件,并在header中加入和缓存相关的header,发送到客户端。

    2K20

    探寻ASP.NET MVC鲜为人知的奥秘(1):对LESS的支持

    ASP.NET MVC3(从那时开始),我们拥有了对js和css等文件的捆绑(Bundling)和压缩(Minification)的能力,这是ASP.NET性能优化工作的一部分。...想一下很久以前,我们在mvc2的时代,我们使用这样的方式引入js和css文件: <script type="text/javascript" src="@Url.Content("~/Script/Script.js...这样做的好处是: 减少了服务器端的流量,给服务器退烧(通过压缩) 自动缓存资源文件,服务器端不更改的话,不会重新加载(通过缓存机制) 由于大多浏览器限制了对一个host同时连接数量,所以加快了网站访问速度...(通过捆绑) 以下是一个简单的示例,我这里用一个新建的ASP.NET MVC项目进行演示: 在新建一个MVC项目后,打开App_Start/BundleConfig.cs文件,可以看到一个静态的RegisterBundles...False组织它这种行为, 在方法体内,可以通过调用BundleCollection参数的Add方法增加我们要捆绑的文件: bundles.Add(new ScriptBundle("~/bundles

    1.2K60

    配电网WebGIS研究与开发

    基本的AJAX技术在第三章中进行了简单的介绍,本模块所采用的AJAX框架主要是“ASP.NET客户端回调”框架,数据编码和解码主要采用JOSN方法。   ...注:在某些场合“ASP.NET客户端回调”也被称为“ASP.NET脚本回调(ASP.NET script callbacks)”   通过XmlHttpRequest进行异步通讯时要在客户端通过JavaScript...3.服务器端RaiseCallbackEvent收到数据并调用相关服务器端函数进行处理并赋值给一个全局字符串变量 4.由GetCallbackResult函数将服务器准备好的字符串数据返回到客户端...需要通过AJAX技术解决的问题: 3.3.1 多级下拉框无刷新联动 在最初对此页面进行制作时,采用的是ASP.NET的服务器控件DropdownList,可以达到多级下拉框联动的效果,但是每次第一级下拉框内容变化时...图3.21 统计图效果 关于如何在客户端异步刷新图片资源的问题,已经在第三章进行了介绍,所以在此不再赘述。每次点击“生成统计图表”按钮,客户端将在客户端第二个选项卡页面无刷新地生成一个统计图。

    2.1K11
    领券