gpt4 book ai didi

asp.net-mvc-3 - 验证AntiForgeryToken和授权超时

转载 作者:行者123 更新时间:2023-12-02 20:10:02 25 4
gpt4 key购买 nike

我有一个用 ValidateAntiForgeryToken 和 Authorize 装饰的 ActionResult。一旦达到我的表单授权超时限制,我就会收到“未提供所需的防伪 token 或无效”错误,而不是被路由到我的登录页面。

谁能解释一下为什么会发生这种情况?

最佳答案

ValidateAntiForgeryTokenAttribute

'Represents an attribute that is used to detect whether a server request has been tampered with.'

引用MSDN 。什么Html.AntiForgeryToken()所做的是将隐藏字段输出到表单中,例如:<input name="__RequestVerificationToken" type="hidden" value="XXX" /> .

什么是ValidateAntiForgeryTokenAttribute回发时所做的是将发布的值与先前存储的 cookie 进行比较,以验证它们是否匹配。请参阅http://aspnet.codeplex.com/SourceControl/changeset/view/72551#338576 (OnAuthorization 方法)了解详细信息。该cookie的名称为RequestVerificationToken_Lw(您可以使用像FireCookie这样的cookie检查工具来查看它)。

存储的cookie是 session cookie(重要的一点)。这意味着当达到授权超时(.NET 中默认为 30 分钟)时,cookie 就会过期,不会随下一个请求一起发送,并且与隐藏字段值的比较失败,抛出 HttpAntiForgeryException .

关于asp.net-mvc-3 - 验证AntiForgeryToken和授权超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8882876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com