[转载]asp.net mvc 2被遗忘的 – ZilchWei-专注asp.net mvc – 博客园.
<%:Html.AntiForgeryToken() %>
我们可以称作令牌认证.
操作系统:windows server 2008 r2
本文来自zilchwei.转载请注明出处!
开发软件:visual studio 2010中文版+ASP.NET mvc 2.0中文版.
浏览器信息:IE8
我们在学习ASP.NET mvc的时候往往在考虑
Index的view输入数据 然后POST到AboutController做处理
我们做一个简单的数据输入页面
index的html代码如下:
<%:Html.BeginForm("About","Home")%> 用户名:<input type="text" name="Zilhwei" /> <%Html.EndForm(); %>本文来自zilchwei.转载请注明出处!
很简单 我们输入一个用户名然后Post到About这个Controller去做一个处理
当然 我们这里会生成HTML代码 如果代码被修改会怎么样呢?这个不做对的探讨.
我们对代码进行修改
<%:Html.BeginForm("About","Home")%> <%:Html.AntiForgeryToken() %> 用户名:<input type="text" name="Zilchwei" /> <%Html.EndForm(); %>
我们的view生成了这样的html代码
代码
<form action="/Home/About" method="post"><input name="__RequestVerificationToken" type="hidden" value="YUqLzBScUslwvdrKa50t4TEy3qyPXWFUH96MruwL6Uf10PcoM3kEi2cgAFBISRRE" /> 用户名:<input type="text" name="Zilchwei" /> </form>
当然 我们接收的AboutConrtoller也要做出相应的修改.
[HttpPost] [ValidateAntiForgeryToken] public ActionResult About() { return View(); }
这里需要说明的是ValidateAntiForgeryToken其实就是一个actionfilter
用户验证是否为指定页面提交的值.
本文来自zilchwei.转载请注明出处!
这样测试肯定是没问题的
那么我们测试下如果未生成令牌会怎么样,修改index的代码
<%:Html.BeginForm("About","Home")%> 用户名:<input type="text" name="Zilchwei" /> <%Html.EndForm(); %>
我们验证结果如图
就这样 欢迎大家和我一起交流.端午节快乐!
本文来自zilchwei.转载请注明出处!