//在View中

<script type="text/javascript">
@functions{
public string ToKenHeaderValue()
{
string cookieToken,fromToken;
AntiForgery.GetTokens(null,out cookieToken,out fromToken);
return cookieToken+":"+fromToken;
}
}

$function({

......
$.ajax("api/Value",{
data:{...},
type:'post',
dataType:'json',
headers:{'RequestVerificationToKen':'@ToKenHeaderValue()'},
success:fucntion(data){....}
})
})
</script>

//自己写的过滤器
public class MyValidateAntiForgeryToKenAttribute:FileterAttribute,IAuthorizationFilter
{
private void ValidateRequestHeader(HttpRequestBase request)
{
string cookieToKen="";
string fromToKen="";
string tokenValue=request.Header["RequestVerificationToKen"];
if(!string.IsNullOrEmpty(tokenValue))
{
string[] tokens=tokenValue.Split(':');
if(tokens.Length=2)
{
cookieToken=tokens[0].Trim();
fromToKen=tokens[1].Trim();
}
}
AntiForGery.Validate(cookieToken,fromToken);
}
}

public void OnAuthiorization(AuthorizationContexte context)
{
try
{
if(context.HttpContext.Request.IsAjaxRequest())//判断是否ajax提交
{
ValidateRequetHeader(context.HttpContext.Request);
}
else
AntiForgery.Validate();
}
catch
{
throw new HttpAntiForgeryException("...");
}

在Controller的Action中

1 [HttpPost]//指示POST提交
2 [MyValidateAntiForgeryToKen]//这儿调用自己写的过滤器,实现防止CSRF攻击
3 public ActionResult Value()
4 {
5 .......
6 }

ASP.NET MVC ajax提交 防止CSRF攻击的更多相关文章

  1. [ASP.NET MVC]@Html.AntiForgeryToken() 防止CSRF攻击

    MVC Html.AntiForgeryToken() 防止CSRF攻击 MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(CSRF:Cross-site request ...

  2. asp.net mvc ajax提交例子

    @{ Layout = null; } <script src="../../Scripts/jquery-1.10.2.min.js" type="text/ja ...

  3. asp.net mvc ajax提交模型到控制器

    http://blog.csdn.net/loongsking/article/details/53224473 function btn_submit() {        var data = n ...

  4. 转:MVC Html.AntiForgeryToken() 防止CSRF攻击

    (一)MVC Html.AntiForgeryToken() 防止CSRF攻击 MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(CSRF:Cross-site requ ...

  5. MVC Html.AntiForgeryToken() 防止CSRF攻击 - CSDN博客

    原文:MVC Html.AntiForgeryToken() 防止CSRF攻击 - CSDN博客 (一)MVC Html.AntiForgeryToken() 防止CSRF攻击 MVC中的Html.A ...

  6. [转]MVC Html.AntiForgeryToken() 防止CSRF攻击

    [转]MVC Html.AntiForgeryToken() 防止CSRF攻击 本文转自:http://blog.csdn.net/luck901229/article/details/8261640 ...

  7. 【转载】Asp.Net MVC网站提交富文本HTML标签内容抛出异常

    今天开发一个ASP.NET MVC网站时,有个页面使用到了FCKEditor富文本编辑器,通过Post方式提交内容时候抛出异常,仔细分析后得出应该是服务器阻止了带有HTML标签内容的提交操作,ASP. ...

  8. 【转载】 Asp.Net MVC网站提交富文本HTML标签内容抛出异常

    今天开发一个ASP.NET MVC网站时,有个页面使用到了FCKEditor富文本编辑器,通过Post方式提交内容时候抛出异常,仔细分析后得出应该是服务器阻止了带有HTML标签内容的提交操作,ASP. ...

  9. MVC Ajax 提交是防止SCRF攻击

    //在View中 <script type="text/javascript"> @functions{ public string ToKenHeaderValue( ...

随机推荐

  1. WCF - net.pipe vs. net.tcp vs. http Bindings

    WCF - net.pipe vs. net.tcp vs. http Bindings 问题: I'm new to WCF and would like to know the differenc ...

  2. Learning WCF Chapter1 Hosting a Service in IIS

    How messages reach a service endpoint is a matter of protocols and hosting. IIS can host services ov ...

  3. 【数据结构】之二叉树的java实现

    转自:http://blog.csdn.net/wuwenxiang91322/article/details/12231657 二叉树的定义: 二叉树是树形结构的一个重要类型.许多实际问题抽象出来的 ...

  4. Entity Framework 学习初级篇1--EF基本概况

    转自:http://www.cnblogs.com/Tally/archive/2012/09/14/2685011.html 最近在学习研究微软的EF,通过这时间的学习研究,感觉这个EF目前来说还不 ...

  5. linux下出现+ ls --color=auto -l --color=auto...++ echo -ne '\033]0;root@imon-2:~'等

    [root@imon-2 ~]# cd /root/ + cd /root/ ++ echo -ne '\033]0;root@imon-2:~' [root@imon-2 ~]# ll + ls - ...

  6. HW4.21

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  7. python爬虫学习(1)__抓取煎蛋图片

    #coding=utf-8 #python_demo 爬取煎蛋妹子图在本地文件夹 import requests import threading import time import os from ...

  8. YII 权限管理

    CREATE TABLE IF NOT EXISTS `admin_role` ( `id` ) unsigned NOT NULL auto_increment, `name` ) NOT NULL ...

  9. HTML快速参考

    HTML 模版 html> <head> <meta charset="utf-8"/> <title>html template< ...

  10. 撸一个JS正则小工具

    写完正则在浏览器上检测自己写得对不对实在是不方便,于是就撸了一个JS正则小demo出来. demo demo展示 项目地址 代码部分 首先把布局样式先写好. <!DOCTYPE html> ...