我在我的asp.net 4.5网络表单应用程序中将它用于Anti Forgery。
<form id="form1" runat="server" class="formCont" method="post">
<%= System.Web.Helpers.AntiForgery.GetHtml() %>
使用命名空间
using System.Web.Helpers;
并在页面加载
AntiForgery.Validate();
它工作正常。
现在我已经为javascript的ajax调用创建了asp generic handler
。现在问题是如何在我的通用处理程序中验证相同的内容。
我在我的ajax电话中试过这个
data: { "__RequestVerificationToken": $("input[name=__RequestVerificationToken]").val() },
并在处理程序中尝试此AntiForgery.Validate();
,但我得到了异常
An exception of type 'System.Web.Mvc.HttpAntiForgeryException' occurred in System.Web.WebPages.dll but was not handled in user code
Additional information: The required anti-forgery form field "__RequestVerificationToken" is not present.
我已签入,我收到了context.Request["__RequestVerificationToken"]
我怎么能解决这个问题。
答案 0 :(得分:0)
我得到了解决方案
它正在查看context.Request.Forms
集合,所以我做了一个小改动,如下所示
type: "POST",
和bingo有效。