asp.net-mvc-4 – 如何获取没有隐藏输入的AntiForgeryToken值
@ Html.AntiForgeryToken()
呈现隐藏的输入 <input name="__RequestVerificationToken" type="hidden" value="GuiNIwhIJZjINHhuS_8FenaFDXIiaE" /> 如何才能获取令牌值? public static IHtmlString AntiForgeryTokenValue(this HtmlHelper htmlHelper) { var field = htmlHelper.AntiForgeryToken().ToHtmlString(); var beginIndex = field.IndexOf("value="") + 7; var endIndex = field.IndexOf(""",beginIndex); return new HtmlString(field.Substring(beginIndex,endIndex - beginIndex)); } 解决方法
MVC的反CSRF功能实际上取决于两个令牌:一个是隐藏的表单元素,另一个是cookie。所以Html.AntiForgeryToken()帮助器不只是返回一个HTML片段。它也有一个副作用设置这个cookie。请注意,cookie值和表单值不相等,因为它们各自编码不同的信息。
如果您使用AntiForgery.GetTokens API,则此方法将返回原始令牌,而不是生成HTML代码段。该方法的参数有: > oldCookieToken:如果请求已经包含反CSRF cookie令牌,请在此处提供。此参数可能为null。 如果您使用此API手动生成cookie和表单令牌,则需要调用AntiForgery.Validate的the corresponding overload才能验证令牌。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何从我的网站项目中删除未使用的CSS类?
- [你必须知道的.NET] 第三回:历史纠葛:特性和属性
- asp.net – 带私有视频的Web API C#
- asp.net – 如何在ASP文本框中显示会话值
- asp.net-mvc – 如何使用Html.BeginForm设置FormMethod.Get
- asp.net-mvc – Can Meteor可以运行Microsoft后端(即EF和AS
- 两个单选按钮ASP.NET C#
- asp.net-mvc – DesignPatterns:哪个最适合用于向导式用户
- asp.net – 如何绑定gridview中数据表的复选框值
- 如何获取基于PhoneGap的应用程序来对ASP.NET Forms身份验证
- ASP.NET Update Panel阻止jquery工作
- asp.net-mvc – 在自定义Html帮助器中访问模型对
- asp.net – VS2010旗舰版.为什么我只看到“Silve
- asp.net – ‘/’应用程序中的服务器错误.此类页
- asp.net-mvc-4 – 在Azure中部署时,在EF迁移中使
- asp.net-mvc-4 – 无法从程序集’itextsharp,Ver
- asp.net – MVC中的HTTPContext和Controllercont
- asp.net-mvc – ASP.Net MVC添加控制器错误
- 初识ABP vNext(1):开篇计划&基础知识
- asp.net – 为什么在设置@Page masterPageFIle时