ASP .NET CORE Идентичность расширяется, а не сохраняется - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь расширить удостоверение ASP .NET. Я чувствую, что у меня есть большинство частей. Модель и пользовательские объекты все правильно заполнены. Однако когда я проверяю базу данных на наличие новой записи, вставленной с помощью функции CreateAsync, все новые поля имеют значение NULL. Чего мне не хватает?

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Register(RegisterViewModel model, string returnUrl = null)
    {
        ViewData["ReturnUrl"] = returnUrl;
        if (ModelState.IsValid)
        {
            var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName
                , Organization = model.Organization };
            var result = await _userManager.CreateAsync(user, model.Password);
            if (result.Succeeded)
            {
                _logger.LogInformation("User created a new account with password.");

                var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                var callbackUrl = Url.EmailConfirmationLink(user.Id.ToString(), code, Request.Scheme);
                await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);

                await _signInManager.SignInAsync(user, isPersistent: false);
                _logger.LogInformation("User created a new account with password.");
                return RedirectToLocal(returnUrl);
            }
            AddErrors(result);
        }

        // If we got this far, something failed, redisplay form
        return View(model);
    }



        services.AddIdentity<ApplicationUser, IdentityRole>(options =>
        {
            // Signin settings
            options.SignIn.RequireConfirmedEmail = false;
            options.SignIn.RequireConfirmedPhoneNumber = false;
        })
        .AddEntityFrameworkStores<ApplicationDbContext>()
        .AddDefaultTokenProviders();


public class ApplicationUser : IdentityUser
{
    public String FirstName;

    public String LastName;

    public String Organization;
}

1 Ответ

0 голосов
/ 10 мая 2018

Вам нужно использовать автоматически реализуемые свойства в вашем классе ApplicationUser вместо использования открытых полей.Это может быть проблемой.

public class ApplicationUser : IdentityUser
{
    public String FirstName { get; set; }

    public String LastName { get; set; }

    public String Organization { get; set; }
}
...