Razor Pages - 网站闲置时出现 HTTP 错误 400(无效的防伪令牌)

Razor Pages - HTTP Error 400 (Invalid Anti Forgery Token) when idle the web site

我正在 Blazor 服务器端开发一个网站。我的登录页面是一个 Razor 页面,一切都按预期工作,但如果用户让浏览器打开大约 20 分钟,然后执行登录,他们会收到 Http 错误 400。我认为这是针对防伪令牌的, 因为如果你删除 cookie ".AspNetCore.Antiforgery" 你会得到同样的错误。我应该怎么做才能解决这个问题?你有什么建议?

您可以尝试将 IgnoreAntiforgeryToken Attribute 应用于 LoginModel class 以跳过防伪令牌验证,如下所示。

[AllowAnonymous]
[IgnoreAntiforgeryToken]
public class LoginModel : PageModel
{
    //...

注意:通常情况下,不建议禁用防伪令牌验证。但是在这个线程中,将其应用于 LoginModel(用户登录功能)应该没问题。

如果应用程序托管在 IIS 中,我建议在应用程序的应用程序池 > 高级设置菜单中设置 Load User Profile = True。我过去遇到过类似的问题,我注意到每次应用程序在 IIS 中重新启动时,密钥都没有保留,并且在重新启动之前打开的任何表单都没有用。但是,一旦我更改了设置,密钥就会持续存在。 https://codeshorts.com/ASP-NET-Core-IIS-Invalid-Anti-Forgery-Token-Error-400

这似乎也是 Azure 托管应用程序的一个问题