我从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