您的位置:首页 > 编程语言 > ASP

Asp.Net MVC POST 处理事项

2016-09-02 11:49 351 查看
1.Asp.net MVC中防止HttpPost重复提交

使用惯了Asp.Net的服务器控件了,
突然转到MVC框架上来遇到这么个问题. 

比如说网速慢的时候, 用户频繁的点击提交按钮, 或者是按F5刷新页面等等。解决方法很简单。

解决方案:

1.
在页面生成时,比如说Index的Action中,开启一个SESSION,存储一个唯一的值(一般.net中使用的是Guid.NewGuid()这个方法)。

2. 同时在隐藏文本域中存储SESSION中的这个值。

3.
Post的时候,POST到另一个Action中,这个Action不重新生成SESSION,只是将现有的SESSION与提交的隐藏文本框中的数据进行对比。

HttpPost方法中将隐藏文本域中的值与SESSION中的值进行比对,如果一致,则为正确提交。不一致,则进行异常处理。

2. Asp.Net MVC3.0中防止跨站的POST


在Form中添加

@Html.AntiForgeryToken();

在后台的Action中增加

[ValidateAntiForgeryToken]

这个方法还可以添加自定义的参数

@Html.AntiForgeryToken("SaltValue");


4000
台的Action中,必需指名Token的值才允许正常提交.

[ValidateAntiForgeryToken Salt=("SaltValue")]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: