2016-05-13 285 views
1

我在登錄表單收到此錯誤:ASP.NET MVC所需的防僞表單字段__RequestVerificationToken不存在

所需的防僞型窗體域「__RequestVerificationToken」不存在

我正在使用Visual Studio 2015模板生成的ASP.NET MVC的默認項目。

Login.cshtml:

@using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 
{ 
    @Html.AntiForgeryToken() 
    ... 
} 

的AccountController:在web.config中

[HttpPost] 
[AllowAnonymous] 
[ValidateAntiForgeryToken] 
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) 
{ 
    ... 
} 

機按鍵定義:

<machineKey validationKey="6237432C07086CE1A8FAAD3CC71A3AC1DE0B22DE9061D7CAF798E5B18E6E888D7A3F88004D0A928952CB81598ED565B26F8175E30294B1F5A1F3220229163F1C" 
    decryptionKey="E61A22E8DEE09CB4640B2863705CE6BC95E64C8797CAB8CAE7463BE7F9AB1B94" 
    validation="SHA1" 
    decryption="AES" /> 

生成的HTML頁面:

<form action="/Account/Login" class="form-horizontal" method="post" role="form"> 
<input name="__RequestVerificationToken" type="hidden" value="Ei4E03S5nvvdR9N2KJg8aGDQK9fI3xbBJLJzT3z3c7QAyyxbGf11ncmTAiD-8itHoKWYuNNghOsmyTS2hBDlmkv7Ttk1" /> 

我在瀏覽器中有一個名爲__RequestVerificationToken的cookie和值爲qM5XwYIQiiHk2lumHWcXHOPPji2VptN95X0FDLneyXSN3_sGrF6fe7zt8KHC5MjopQoBh9sJl5vEJLGOAzy1h-8R-nk1的會話結束時到期:When the browsing session ends

這個錯誤在本地沒有發生,但是在將項目部署到服務器之後發生了此錯誤。

清除cookie並重新啓動瀏覽器並未解決問題。

有什麼想法?

編輯:

我刪除防僞標記來自控制器和視圖,並發現了一些奇怪的:表單提交的數據沒有任何問題,但在提交和確認之間的某個地方,各個領域成爲空。 __RequestVerificationToken在驗證之前變爲null,這會導致問題。現在我研究這個新的問題:(

+0

請告訴我們您的發送請求給服務器。權點擊頁面檢查元素 - >網絡選項卡 – Oli

回答

1

在你的web.config找到<httpCookies requireSSL="true" />財產,其註釋掉,或設置你的項目總是使用SSL。

+0

這是一個很好的建議,但不是解決這個錯誤。 –

+0

它解決了我的問題。 – selami

相關問題