Asp.net core GenerateEmailConfirmationTokenAsync(用户)生成错误加密失败

Asp.net core GenerateEmailConfirmationTokenAsync(用户)生成错误加密失败,asp.net-core,Asp.net Core,调用generateemailconfimationtokenasync(用户)方法返回错误消息Encryption Failed 这是一个具有资源服务器和身份验证服务器的.Net核心应用程序。用户帐户管理正在资源服务器上完成。当执行时间到了 var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); 我收到错误消息加密失败 下面是数据保护的配置 var cert = new X509Certificate

调用
generateemailconfimationtokenasync(用户)
方法返回错误消息
Encryption Failed

这是一个具有资源服务器和身份验证服务器的.Net核心应用程序。用户帐户管理正在资源服务器上完成。当执行时间到了

 var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
我收到错误消息
加密失败

下面是数据保护的配置

var cert = new X509Certificate2(Path.Combine(folderForKeyStore, "teejay.pfx"), "xxxxxxxxxx");
var folderForKeyStore = Configuration["Data:KeyStoreFolderWhichIsBacked:keystore"];
services.AddDataProtection()
           .SetApplicationName("Academic Records Management System")
          .ProtectKeysWithDpapiNG("CERTIFICATE=Hashid:" + cert.Thumbprint, flags: DpapiNGProtectionDescriptorFlags.None)
            .PersistKeysToFileSystem(new DirectoryInfo(folderForKeyStore));
下面是堆栈跟踪

at     Microsoft.AspNetCore.Cryptography.UnsafeNativeMethods.ThrowExceptionForNCryptStat    usImpl(Int32 ntstatus)       at     Microsoft.AspNetCore.DataProtection.Cng.DpapiSecretSerializerHelper.ProtectWithDpapiNGCore(NCryptDescriptorHandle protectionDescriptorHandle, Byte* pbData, UInt32 cbData)
   at     Microsoft.AspNetCore.DataProtection.Cng.DpapiSecretSerializerHelper.ProtectWithDpapiNG(ISecret secret, NCryptDescriptorHandle protectionDescriptorHandle)
在Microsoft.AspNetCore.DataProtection.XmlEncryption.DpapiNGXmlEncryptor.Encrypt(XElement plaintextElement)上 在Microsoft.AspNetCore.DataProtection.XmlEncryption.XmlEncryptionExtensions.EncryptifEssential(IXmlEncryptor encryptor encryptor,XElement元素)上 位于Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager.Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.IIInternalXMLKeyManager.CreateNewKey(Guid-keyId、DateTimeOffset-creationDate、DateTimeOffset-activationDate、DateTimeOffset-expirationDate) 在Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager.CreateNewKey(DateTimeOffset activationDate,DateTimeOffset expirationDate) 在Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.CreateCacheableKeyRingCore(现在是DateTimeOffset,IKey keyJustAdded) 位于Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.ICacheableKeyRingProvider.GetCacheableKeyRing(现在是DateTimeOffset) 位于Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.GetCurrentKeyRingCore(DateTime utcNow) 位于Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.Protect(字节[]明文) 在Microsoft.AspNetCore.Identity.DataProtectorTokenProvider
1.d_u11.MoveNext()上
---来自引发异常的上一个位置的堆栈结束跟踪---
在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
at System.Runtime.CompilerServices.TaskAwaiter
1.GetResult() 在E:\Projects\School\ARMS\ARMS.ResourceServer\Controllers\UserManagerController.d_u25.MoveNext()中的ARMS.ResourceServer.Controllers.UserManagerController.cs:第271行 ---来自引发异常的上一个位置的堆栈结束跟踪--- 在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中 在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中 在Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d_u27.MoveNext()中 ---来自引发异常的上一个位置的堆栈结束跟踪--- 在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中 在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中 在Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d_u25.MoveNext()中 ---来自引发异常的上一个位置的堆栈结束跟踪--- 在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中 位于Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext上下文) 位于Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(状态和下一步、范围和范围、对象和状态、布尔值和isCompleted) 在Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d_u22.MoveNext()中 ---来自引发异常的上一个位置的堆栈结束跟踪--- 在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中 位于Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ResourceExecutedContext上下文) 位于Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(状态和下一步、范围和范围、对象和状态、布尔值和isCompleted) 在Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d_u20.MoveNext()中 ---来自引发异常的上一个位置的堆栈结束跟踪--- 在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中 在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中 在Microsoft.AspNetCore.Builder.RouterMiddleware.d_u4.MoveNext()上 ---来自引发异常的上一个位置的堆栈结束跟踪--- 在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中 在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中 在Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.d_u7.MoveNext()上 ---来自引发异常的上一个位置的堆栈结束跟踪--- 在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中 在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中 在Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.d_u6.MoveNext()中

因此,在阅读了一段时间后,我设法深入到事件查看器中,这就是我发现的

有一件事是显而易见的。我的自我签名证明肯定有问题,但不明显的是如何处理。谁来帮帮我