防伪令牌无法解密? [摆脱这个奇怪的错误]

时间:2019-05-21 04:39:31

标签: c# asp.net-mvc

我已使用c#语言和代码优先方法在Asp.Net MVC中开发了一个Web应用程序,该应用程序已部署在实际的Web服务器中,并且除了出现几次该错误以外,其运行情况都很好。

The anti-forgery token could not be decrypted. If this application is hosted by a Web Farm or cluster, ensure that all machines are running the same version of ASP.NET Web Pages and that the <machineKey> configuration specifies explicit encryption and validation keys. AutoGenerate cannot be used in a cluster

我称此错误为怪异的原因是它是意外的,这意味着它有时但并非总是发生。

例如,当我尝试从两台不同的计算机登录到我的应用程序的一个帐户(例如,登录到John的帐户)时,我可能会或可能不会收到此错误。

现在,此错误的这种意外性质无法让我弄清楚实际问题出在哪里?

请提供您的建议或意见,以帮助我解决此问题。

谢谢。

1 个答案:

答案 0 :(得分:2)

您是否在MachineKey文件中定义了web.config?如果,您可以按照下面的文章查看如何使用IIS管理器轻松创建它

Setting Up the Machine Key Using IIS Manager

<configuration>
  <system.web>
    <machineKey decryptionKey="Decryption key goes here,IsolateApps" 
                validationKey="Validation key goes here,IsolateApps" />
  </system.web>
</configuration>

重要的重要提示:

如果在视图中添加防伪令牌两次或更多次,则可能导致此问题。检查您的视图,共享视图,局部视图,看看是否仅添加一次anti-forgery令牌!