aierda 2023-04-03 19:43 采纳率: 72.1%
浏览 162
已结题

.NetCore部署后出现“无法解密防伪令牌”问题

问题描述:我的ABP解决方案中,有两个WEB项目(.NetCore6),两者之间是通过
https进行通讯的。在vs中进行测试是完全没有问题的,但是部署到IIS
上面去就出现问题了。
报错内容:
AspNetCore.Antiforgery.DefaultAntiforgery - An exception was thrown while deserializing the token.
Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException: The antiforgery token could not be decrypted.

大概意思是:反序列化令牌时抛出异常,无法解密防伪令牌
我是通过oppssl命令首先生成了一个证书,然后在IIS中进行导入操作,部署这两个网站时,都是选择https协议的,
并且指定同一个导入的证书。
百度了很久,尝试了很多方式,都是无效
提问:不知各位有没有遇到过这种问题,求有效的解决方案,谢谢!

  • 写回答

6条回答 默认 最新

  • 阿里嘎多学长 2023-04-06 00:35
    关注

    以下内容部分参考ChatGPT模型:
    首先,这个问题的根本原因是无法解密防伪令牌,可能是因为生成的证书有问题,或者是证书在部署过程中没有正确配置。

    解决方案:

    1. 检查证书

    首先,检查证书是否正确生成并导入到IIS中。可以使用以下命令检查证书的有效期和信任链:

    openssl x509 -in cert.crt -text -noout
    

    如果证书有问题,请重新生成证书并重新导入到IIS中。确保证书可以被信任,并且在IIS中正确配置了证书绑定。

    1. 检查防伪令牌

    检查防伪令牌所使用的密钥是否正确设置。可以使用以下代码检查密钥:

    services.AddAntiforgery(options =>
    {
        options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
        options.Cookie.SameSite = SameSiteMode.None;
        options.Cookie.HttpOnly = true;
        options.Cookie.Name = "XSRF-TOKEN";
        options.HeaderName = "X-XSRF-TOKEN";
        options.SuppressXFrameOptionsHeader = false;
    
        options.ValidationAlgorithm = "AES";
        options.ValidationKey = Encoding.UTF8.GetBytes("my_super_secret_validation_key");
    });
    

    确保ValidationKey的值与防伪令牌的密钥匹配。

    1. 检查HTTPS设置

    确保在部署过程中正确配置了HTTPS设置。可以使用以下代码确保所有请求都使用HTTPS:

    app.UseHttpsRedirection();
    
    1. 检查Cookie设置

    确保在部署过程中正确配置了Cookie设置。可以使用以下代码确保Cookie的SecurePolicy、SameSite和HttpOnly属性正确设置:

    services.Configure<CookiePolicyOptions>(options =>
    {
        options.CheckConsentNeeded = context => true;
        options.MinimumSameSitePolicy = SameSiteMode.None;
        options.Secure = CookieSecurePolicy.Always;
        options.HttpOnly = true;
    });
    

    以上是一些可能的解决方案。如果以上方法都无法解决问题,请检查其他可能的问题,例如防火墙设置、反向代理设置等。
    如果我的建议对您有帮助、请点击采纳、祝您生活愉快

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 4月14日
  • 已采纳回答 4月6日
  • 创建了问题 4月3日

悬赏问题

  • ¥15 关于#wpf# devexpress的问题:选中时是黑色未选中是白色字体,想要更改未选中时字体的颜色(语言-c#)
  • ¥15 是莱克小黄人开始看胜利大利大利打开
  • ¥15 逐月累计,月份不连续,补齐月份
  • ¥15 应用简单的Python代码完成一个学生成绩管理系统
  • ¥15 用matlab求微分方程初值问题
  • ¥15 vscode下编写第三方库opencv与pcl代码时没有代码提示
  • ¥15 能够跑通不报错,如何解决?(标签-matlab)
  • ¥15 MOS在RDS较大,频率高时开关波形异常
  • ¥15 SCENIC分析报错求解答
  • ¥15 ceph初始化mon不成功 下图不报错 这个是什么元