我從web表單頁面(profile.aspx)到MVC視圖(signin.aspx)重定向頁面。在MVC控制器中,我有[ValidateAntiForgeryToken]
來獲取令牌信息,但是當我提交MVC視圖時,我得到'所需的防僞令牌未提供或者無效'消息。如果我刪除[ValidateAntiForgeryToken]
,則不會再出現錯誤消息,但我丟失了令牌信息。 我確實需要所有這些令牌信息進行驗證。那麼我該如何解決這類問題呢? 謝謝。MVC3:所需的防僞造令牌未提供或無效
1
A
回答
1
在您的視圖中,如果您聲明<form>
,則需要使用@Html.AntiForgeryToken()助手。
@using (Html.BeginForm()) {
Html.AntiForgeryToken()
// The rest of your code
<div class="something">
@Html.DisplayFor(m => m.Whatever)
</div>
// etc...
}
這會將防僞造標記傳回您的控制器。
更新:您遇到的問題是您正在執行重定向。當你這樣做時,所有的價值都會喪失。不清楚的是爲什麼你要從一個頁面重定向到另一個頁面。通常在MVC中,如果用戶未通過身份驗證或會話過期,則會重定向到login.aspx頁面。如果您的Signin.aspx位於AccountController
,那麼Signing.aspx和AccountController都應標記爲防僞。但是,如果用戶處於Signin.aspx中,則內部您只需撥打return RedirectToAction("Profile", "WhateverController");
即表示您的信息將丟失,WhateverController
將失敗,因爲配置文件操作未收到防僞信息。
您的登錄過程應該做一些事情,重定向到HTTP GET版本的配置文件,讓用戶完成表單條目並將其提交給HTTP POST版本的配置文件。這樣您的數據將被保留,並且防僞令牌將成功到達。
相關問題
- 1. 未提供所需的防僞標記或無效
- 2. AntiForgery例外:所需的防僞標記未提供或無效
- 3. FileUplaod:未提供所需的防僞標記或無效
- 4. 未提供所需的防僞標記或者無效
- 5. 無效的防僞令牌
- 6. 什麼錯誤可能導致錯誤:未提供所需的防僞令牌或無效
- 7. 拋出間歇性錯誤,「未提供所需的防僞標記或無效。」
- 8. 阿賈克斯投擲後所需的防僞標記未提供或無效
- 9. 提供的Instagram訪問令牌無效
- 10. 無法解密防僞令牌
- 11. iframe,跨域cookie,p3p策略和safari出錯:未提供必需的防僞標記或無效
- 12. 反僞造令牌錯誤
- 13. 令牌提供程序無法提供安全令牌。令牌提供程序返回消息:ACS50009:SWT令牌無效
- 14. 未提供所需的模擬級別,或所提供的模擬級別無效
- 15. 令牌是無效的或無效的狀態令牌
- 16. Trello API身份驗證未提供有效的用戶令牌
- 17. 登錄表單中的防僞令牌
- 18. 如何插入防僞造令牌使用Clojure Enlive
- 19. 如何使用防僞造令牌與ajax wcf服務
- 20. MVC 3 - 一個需要防僞標誌沒有被提供或者是無效的 - Safari瀏覽器IOS
- 21. Rails 4 devise_invitable「提供的邀請令牌無效!」錯誤
- 22. Last.fm api:提供的身份驗證令牌無效
- 23. Android +解析:提供的Facebook會話令牌已過期或無效
- 24. 防僞令牌網絡API 2
- 25. ASP.NET如何驗證防僞令牌
- 26. 防僞令牌問題(MVC 5)
- 27. ASP.MVC防僞令牌和加密錯誤
- 28. 無效防僞錯誤
- 29. ASP MVC反僞造令牌問題
- 30. Asp.net Mvc:jquery post數組+反僞造令牌
我已經把它放在我的視野裏了。 – howexg9
查看我的更新。另外,你是否可以擴展你的問題來清楚地解釋你的過程?哪個控制器處理profile.aspx時,重定向到哪裏你確切地重定向?同一控制器?不同的控制器 –
那麼如何保存所有令牌信息?或者在它重定向到MVC之後,我如何從MVC獲取所有令牌信息?謝謝。 – howexg9