【问题标题】:Antiforgery token could not be decrypted exception in .net .core web app.net .core Web 应用程序中的防伪令牌无法解密异常
【发布时间】:2017-05-09 03:03:02
【问题描述】:

我正在开发 asp.net 核心网络应用程序。我使用身份进行用户授权。 当会话到期时,用户重定向到登录视图。然后用户尝试提交登录表单,有时会出现这个异常:

Microsoft.AspNetCore.Antiforgery.Internal.DefaultAntiforgeryTokenSerializer. 
The antiforgery token could not be decrypted. 

但是如果用户重新加载页面并尝试再次提交表单,用户可以毫无问题地登录。

我在本地机器上的同一个网站没有这个问题。

我已经阅读了以相同形式应用两次的防伪令牌会导致此错误,但我只有一个令牌,我已经检查过。

其他建议是使用

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

这在this 文章中有所描述,情况与我的相似。但是文章从 2013 年开始是旧的。 所以我不确定我是否可以将它与 asp.net 核心一起使用。人们说这种方式在asp.net核心中不起作用。我没有找到任何其他建议如何解决 asp.net 核心中的问题。 那么也许有人遇到了同样的问题,可以帮助我吗?

【问题讨论】:

    标签: asp.net asp.net-core asp.net-identity antiforgerytoken


    【解决方案1】:

    我在本地机器上的同一个网站没有这个问题。

    您是否将应用程序部署到多台机器上? 然后,您在正确的轨道上查看机器密钥。问题是不同的 Web 服务器会以不同的方式加密和解密。

    本文介绍了 ASP.NET 核心的数据保护: https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/introduction

    您选择的数据保护提供商取决于您的环境。

    【讨论】:

    • 嗨。感谢您的帮助。我们使用普通主机。而且我们不使用网络农场。我的本地机器上也有这个网站。所以我也可以使用机器密钥还是必须使用数据保护?我必须选择什么?
    猜你喜欢
    • 2020-12-06
    • 2020-04-09
    • 2017-07-21
    • 2023-03-30
    • 1970-01-01
    • 2020-03-09
    • 2016-03-23
    • 1970-01-01
    相关资源
    最近更新 更多