繁体   English   中英

网站发布到IIS后XSRF令牌过期

[英]XSRF token expired after website publish to IIS

我正在使用ASP.NET Boilerplate框架,在每个页面中都放置了以下代码。

@inject IAbpAntiForgeryManager AbpAntiForgeryManager

@{
    AbpAntiForgeryManager.SetCookie(Context);
}

我将应用程序服务称为:

var xhr = abp.services.app.order.add(data);

        xhr.done(function (data) {
            alert(data);
        });

当我在localhost中运行时,一切正常,即使重建项目,XSRF令牌也不会过期。 每次单击[将网站发布到IIS]时,所有的ajax请求都将返回400 Bad Request,我猜这是因为XSRF令牌已过期,在浏览器中单击F5之后,一切恢复了正常。 这对用户来说太烦人了,我能做些什么来防止此错误? 还是自动刷新令牌?

谢谢!

更新

LOG文件中的错误消息:

ERROR 2019-02-12 13:40:09,773 [71   ] .Antiforgery.Internal.DefaultAntiforgery - An exception was thrown while deserializing the token.
Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException: The antiforgery token could not be decrypted. ---> System.Security.Cryptography.CryptographicException: The key {996d31d2-0fa3-4ffe-8e82-e155c1486d33} was not found in the key ring.

根据错误,听起来您的数据保护密钥在发布时已经旋转。 在此处查看有关数据保护的文档: https : //docs.microsoft.com/zh-cn/aspnet/core/security/data-protection/introduction?view=aspnetcore-2.2 有很多选项如何配置它,在哪里存储密钥等。您将需要更改它存储它们的方式。

有关配置数据保护的更多信息: https : //docs.microsoft.com/zh-cn/aspnet/core/security/data-protection/configuration/overview?view=aspnetcore-2.2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM