mvc 方法只允许ajax访问

有时候我们写一些方法 只想在ajax使用  其他的不想暴露  就可以对方法进行限制

如下:

[AttributeUsage(AttributeTargets.Method)]
public class HandlerAjaxOnlyAttribute : ActionMethodSelectorAttribute
{
public bool Ignore { get; set; }
public HandlerAjaxOnlyAttribute(bool ignore = false)
{
Ignore = ignore;
}
public override bool IsValidForRequest(ControllerContext controllerContext, System.Reflection.MethodInfo methodInfo)
{
if (Ignore)
return true;
return controllerContext.RequestContext.HttpContext.Request.IsAjaxRequest();
}
}

调用方法  如下

[HandlerAjaxOnly]
public ActionResult Updatehttime(string BillNo, string htStartTime, string htendTime, int totalSplitNum)

时间: 2024-08-05 00:11:43

mvc 方法只允许ajax访问的相关文章

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据(转)

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据 WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="IsPostBack.WebForm1" %> <!DOCTYPE htm

ASP.NET MVC 使 Controller 的 Action 只接受 Ajax 请求。

首先,ajax 请求跟一般的 web 请求本质是相同的,都是 http 请求.理论上服务器端是无法区分该次请求是不是 ajax 请求的,但是,既然标题都已经说了,那么肯定是有办法做的. 在 ajax 请求的请求报文里,往往会包含这么一条:X-Requested-With = XMLHttpRequest 这在各大的 javascript 框架上也是这么做的. 而服务器端就可以根据这一点来判别,该次的请求是否是 ajax 请求. 而在 ASP.NET MVC 里,也有一个扩展方法: 1 names

多线程访问限制某个方法只执行一次

 一.目录 环境及需求 问题 解决方案 知识点补充  二.环境及需求 每个任务都会有1万线程访问这个方法,这个方法里面又会访问验证码验证服务的方法,这样就会解开验证码限制,后续的访问达成有效访 问.然后过了一个时间单位,访问又会受限,多个线程同时请求验证码验证服务,解封后,后面的访问就会正常.这样一直循环. 因为验证码服务收费,并且解封一次后续就可正常访问.怎样让这1万个并发线程进入方法后,队列去请求验证码服务,请求成功后其它线程不访问验证码服务. 1.这里用示例程序模拟一下环境,模拟1万线程并

ajax 访问--提高安全性

首先受到struts token的启发,产生了客户端发起的ajax请求进行验证的想法,大致思路是客户端每次请求产生一个key ,然后服务端接收到key,然后解析,判断是否为合法key, 对于不带key 或者验证失败的直接拦截下来,从而减轻服务器的压力,好了废话不多说,上代码 首先我使用的是struts2的拦截器,(ps:不知道的度娘告诉你) 继承 AbstractInterceptor 实现init()和 intercept() ,从字面意思上去理解这两个方法 初始化 和拦截 第一个方法 就是从

Nginx,Apache只允许域名访问详细配置

Nginx,Apache只允许域名访问详细配置 一.nginx配置只允许域名访问 # 设置不允许Ip访问web(default_server) server { listen 80 default_server; server_name _; return 403; } # 设置www.meteor-yu.com域名访问web server { listen 80; server_name www.meteor-yu.com; location /ngx_status { stub_status

10.MVC框架开发(Ajax应用)

1.MVC自带的Ajax应用, 使用步骤: 第一步,引入js框架 <script src="../../Scripts/jquery-1.4.4.js" type="text/javascript"></script> <script src="../../Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></scri

SQL SERVER 9003错误解决方法 只适用于SQL2000

SQLSERVER 9003错误解决方法 只适用于SQL2000 (只适用于SQL2000) "无法打开新数据库 'POS'.CREATE DATABASE 中止. (Microsoft SQL Server,错误: 9003)" 看是9003错误,就想到可能是由于日志文件的原因,再看数据库文件可能损坏,于是想到dbcc checkdb指令. 方法如下: 1.我们使用默认方式建立一个供恢复使用的数据库(如pos).可以在SQL Server Enterprise Manager里面建立

js中使用setInterval方法只调用一次而没有循环调用

    <script>         var i = 0;         function fun() {             console.log(i);             var obj = document.getElementById("test");             obj.className="test" + (i++ % 2);         }         function test() {        

Linux 如何设置只允许域名访问站点而禁止IP访问站点

最近在论坛里看到有人问到 Linux 如何设置只允许域名访问站点而禁止IP访问站点的问题,之前自己也用过这个功能,可以防止别人用 IP 地址来访问到自己的网站,下面我就我自己的环境给出解决方法,我用的是 OneinStack 的一键包,LANMP 环境,其实都差不太多,大同小异,只要理解了原理,下面的就好办了. 具体方法为:找到 apache 的配置文件,我的环境下路径为:/usr/local/apache/conf/httpd.conf,在文件最下面,Include conf/vhost/*.