0
我在我的asp.net 4.5网页表单应用程序中使用了这种防伪技术。AntiForgery Asp.net网络表单
<form id="form1" runat="server" class="formCont" method="post">
<%= System.Web.Helpers.AntiForgery.GetHtml() %>
使用命名空间
using System.Web.Helpers;
,并在页面加载
AntiForgery.Validate();
它的正常工作。
现在我创建了可能asp generic handler
来自javascript的ajax调用。现在的问题是我如何验证我的通用处理程序中的相同。
我在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"]
得到的值
我怎么能过来这个问题。
你用什么格式发布数据? JSON? '应用程序/ x-WWW的形式urlencoded'? – mason
@mason它的默认值我没有指定任何。 –
然后使用浏览器的网络工具查看AJAX请求。比较一下,正常的职位看起来像。指出不同。 – mason