簡體   English   中英

AntiForgery Asp.net網絡表單

[英]AntiForgery Asp.net Webforms

我在asp.net 4.5 Web表單應用程序中將其用於防偽。

<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"]獲取值。

我怎么能克服這個問題。

我找到了解決方案

它正在context.Request.Forms集合中查找,因此我做了如下較小的更改

  1. 將請求類型更改為發布type: "POST",

和賓果游戲工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM