【问题标题】:MVC 2 Antiforgerytoken session issueMVC 2 Antiforgerytoken 会话问题
【发布时间】:2011-09-06 07:19:33
【问题描述】:

我已经在我的 MVC 2 应用程序中实现了防伪令牌。
我还在web.config 中添加了一个机器密钥。当会话到期并且我尝试发帖时,它会引发 A required anti-forgery token was not supplied or was invalid 错误。
防伪令牌似乎即将到期。

我的问题是

  • 为什么在会话到期后抛出错误?
  • 令牌的有效期是多久?

【问题讨论】:

    标签: asp.net-mvc-2 antiforgerytoken sessionend


    【解决方案1】:

    我从来没有遇到过这样的问题,我很确定 AntiForgeryToken 不会过期,但我正在阅读here,似乎有人遇到了你的问题。

    我不使用机器密钥。 我只是做这样的事情:

    <% using(Html.Form("UserProfile", "SubmitUpdate")) { %>
        <%= Html.AntiForgeryToken("AF-MyApp-token") %>
        <!-- rest of form goes here -->
    <% } %>
    

    和服务器端:

    [ValidateAntiForgeryToken(Salt="AF-MyApp-token")]
    public ViewResult SubmitUpdate()
    {
        // ... etc
    }
    

    【讨论】:

    • 这非常令人沮丧,因为在您的应用程序中实现防伪令牌并不会造成很多麻烦。我是否认为您只需将机器密钥添加到您的 web.config 中,他们就会自动使用它?
    • @doogdeb:我已经更新了我的答案。我从这里得到了灵感:blog.stevensanderson.com/2008/09/01/…
    • 我以前看过那个解决方案,但我仍然遇到同样的问题。此外,我的应用程序将部署在网络场中,这就是我选择机器密钥路线的原因。
    • @doogdeb:正如我所说,我没有经历过这样的事情。但是,无论如何,jamescrowley 写的文章(请参阅我的答案中的链接)已经找到了解决方案。
    • Firefox 说 RequestVerificationToken_Lw cookie 在会话结束时过期。我在 MVC3 中对此进行了测试,但假设这种行为在 MVC2 中是一致的。
    猜你喜欢
    • 2011-01-02
    • 2011-09-18
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 2018-06-11
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多