【问题标题】:ASP .Net core Identity Framework, user can't be added and no error messageASP .Net 核心身份框架,无法添加用户且没有错误消息
【发布时间】:2021-06-29 06:55:47
【问题描述】:

我正在尝试在我的数据库中添加一个用户,但是当我创建它时它没有被添加并且它没有给我一个错误消息。当我向 CeateUser 方法添加断点时,代码正在运行,但是当我在结果条件上添加断点时,代码永远不会到达。
这是我的 PageModel
 public class AddUserModel : PageModel
{
    [BindProperty]
    public NewAccountInput AccountInput { get; set; }

    private UserManager<AdminUser> UserManager { get; set; }

    public AddUserModel(UserManager<AdminUser> userManager)
    {
        UserManager = userManager;


    }

    public void OnPost()
    {

        if(AccountInput.ComfirmationPassword != AccountInput.Password)
        {
            return;
        }
        _ = CreateUser();



    }

    public async Task<bool> CreateUser()
    {
       var result = await UserManager.CreateAsync(new AdminUser()
        {
            Email = AccountInput.Email,
            FirstName = AccountInput.UserName,
            LastName = AccountInput.UserName,
            UserName = AccountInput.Email
        }, AccountInput.Password);


        if (result.Succeeded)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

【问题讨论】:

  • 尝试使方法OnPost异步并使用await调用方法CreateUser
  • 谢谢,现在我有一个错误:“无法访问已处置的对象。\n对象名称:'MySqlConnection'。”
  • 问题很简单。方法 CreateUser 引发异常。您没有看到此异常,因为您没有使用 await 调用方法 CreateUser。请参阅此问题以了解它为何如此有效:stackoverflow.com/questions/60560761/…
  • 由于我添加了一个等待我有这个错误,所以问题可能不是等待。
  • 问题出在你的方法CreateAsync

标签: c# asp.net asp.net-core asp.net-identity


【解决方案1】:

解决办法是因为方法 OnPost 必须是 Task 类型。

public async Task OnPost()
{

      if(AccountInput.ComfirmationPassword != AccountInput.Password)
      {
           return;
      }
      await CreateUser();
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 2020-05-30
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多