Asp.Net Core 1.1密钥环中没有找到密钥

问题描述 投票:1回答:2

DEFAULT PROJECT IN VS 2017我在vs社区中创建了一个新的Asp.net Core Web应用程序并在FTP托管上发布,但是当我提交表单(登录或用户创建)时,我收到此错误:

Microsoft.AspNetCore.Antiforgery.Internal.DefaultAntiforgery [7]反序列化令牌时抛出异常。 System.InvalidOperationException:无法解密防伪令牌。 ---> System.Security.Cryptography.CryptographicException:在密钥环中找不到密钥{...}。

我需要做些什么来使它工作?谢谢。

asp.net asp.net-core antiforgerytoken
2个回答
1
投票

如果您的IIS应用程序池设置为使用ApplicationPoolIdentity,则需要确保IIS应用程序池的“加载用户配置文件”设置为“True”。

见:https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/default-settings?view=aspnetcore-2.1

  1. 如果用户配置文件可用,则密钥将持久保存到%LOCALAPPDATA%\ ASP.NET \ DataProtection-Keys文件夹。如果操作系统是Windows,则使用DPAPI对密钥进行静态加密。

1
投票

如果您的托管环境为应用程序使用多个实例,则可能是问题的原因。解决此问题的最简单方法是缩小到一个实例并使最大数量的实例1。

这是针对身份或登录API的一面。当您的应用程序正在登录实例时。并使用另一个实例检查令牌。

© www.soinside.com 2019 - 2024. All rights reserved.