Имя не может быть пустым или пустым. asp.net identity mvc 5 + EntityFreamwork

У кого-нибудь была проблема с этим. Он выдает мне ошибку: имя не может быть нулевым или пустым. Но в таблице нет атрибута с именем "Имя". Я хочу настроить личность Asp.Net.

контроллер

  public class HomeController : Controller
{
    //
    // GET: /Home/
    public async Task<ActionResult> Index()
    {
        var userStore = new UserStore<User,Identity_2Context.MyRole,long,Identity_2Context.MyUserLogin,Identity_2Context.MyUserRole,Identity_2Context.MyClaim>(new Identity_2Context());
        var manager = new UserManager<User,long>(userStore);

        var user = new User()
        {
            UserName = "TehnoMac",Email = "TehnoMac@tehcno.com",IsApproved = true,IsLockedOut = false,
            CreatedDate = DateTime.Now,LastActivityDate = DateTime.Now,LastLoginDate = DateTime.Now,FailedPasswordAnswerAttemptCount = 0,
            FailedPasswordAttemptCount = 0
        };

        var result = await manager.CreateAsync(user, "test123test");

        if (result.Succeeded)
        {
            var authenticationManager = HttpContext.GetOwinContext().Authentication;
            var userIdentity = manager.Create(user, DefaultAuthenticationTypes.ApplicationCookie);
        }
        else
        {
            ViewBag.Text = result.Errors.FirstOrDefault();
        }

        return View();
    }
}

Открытый класс IdentityModel ApplicationUser: IdentityUser { }

public class MyClaim:IdentityUserClaim<long>
{
}

public class MyRole:IdentityRole<long,MyUserRole>
{
}

public class MyUserRole:IdentityUserRole<long>
{
}
public class MyUserLogin:IdentityUserLogin<long>
{
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser,MyRole,long,MyUserLogin,MyUserRole,MyClaim>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }
}

3 ответа

Убедитесь, что вы указали имя пользователя. Я получил ту же ошибку и после установки UserName собственность, ошибка ушла.

Решено (по крайней мере, для меня) УДАЛЕНИЕ свойства UserName из настроенного удостоверения (это в проекте GitHub ASPNetIdentitySample, откуда, я полагаю, люди его получают). Это скрывает свойство UserName в IdentityUser

Вы должны указать имя пользователя для идентификаторов, даже если вы его не используете. Например, вам нужно войти в систему с адресом электронной почты и паролем, чем вы можете установить имя пользователя с помощью переменной электронной почты.

передача переменной электронной почты в свойство UserName

Почему нам нужно это делать? Потому что нам нужно имя пользователя в конструкторе IdentityUser. Конструктор IdentityUser

Другие вопросы по тегам