asp.net-core-2.0 - 使用 GenerateEmailConfirmationTokenAsync 时值不能为空错误?

标签 asp.net-core-2.0

我正在使用以下命令:

var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

我在堆栈跟踪中收到以下错误:
    System.ArgumentNullException: Value cannot be null.
Parameter name: value
   at System.IO.BinaryWriter.Write(String value)
   at Microsoft.AspNetCore.Identity.DataProtectorTokenProvider`1.GenerateAsync(String purpose, UserManager`1 manager, TUser user)
   at n8rpg.Controllers.AccountController.Register(RegisterViewModel model) in D:\Source\n8rpg\n8rpg\n8rpg\Controllers\AccountController.cs:line 62
   at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at System.Threading.Tasks.ValueTask`1.get_Result()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()
   at Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

我尝试手动将值放入所有用户属性中。我不知道如何调试这个东西来找出我的空值在哪里......有什么提示吗?

最佳答案

这是生成异步 的方法DataProtectorTokenProvider 类(class)
抛出的点如图所示:
the point that throws is showed in picture
就我而言,我在 User 类中定义了 Id 属性:

   public class ApplicationUser : IdentityUser<long>,IFormModel,IEntity
{
    
    public long Id { get; set; }
....
您也可以查看此 answer

关于asp.net-core-2.0 - 使用 GenerateEmailConfirmationTokenAsync 时值不能为空错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55853323/

相关文章:

c# - 如何在 .net core 2 c# 中获取地理位置

asp.net - asp.net core 中 web.config 文件的替代项是什么

bash - Linux Bash 上的 "dotnet ef dbcontext scaffold"问题

asp.net-core - 在 EF Core 2.1 中执行异步不可选择存储过程

c# - UPDATE 语句与 EF Core 中的 FOREIGN KEY 约束冲突

transactions - 如何在asp.net-core 2.0中进行交易?

c# - .net 核心控制台应用程序作为 Windows 服务-是否可以在不使用 Kill() 方法的情况下安全地终止已启动进程的执行?

c# - IServiceCollection 不包含 AddHttpClient 的定义

asp.net-core - reloadOnChange 在 .NET Core 2 中不起作用

c# - 如何在 azure functions(2.0) 的 swagger UI 中默认显示帖子正文示例