#c# #asp.net #asp.net-identity
Вопрос:
Мы работаем уже ~4 месяца, и до сих пор у нас не было никаких жалоб. Сегодня у нас есть кто-то, кто жалуется, что создание учетной записи не работает для них. Поэтому я попробовал сам, и при отладке я действительно обнаружил проблему.
Мы получаем ошибку
{«Идентификатор пользователя не найден».}
Что происходит на этой линии
var Идентификатор пользователя = менеджер.CreateIdentity(пользователь, типы проверки подлинности по умолчанию.ApplicationCookie);
Я не могу понять, почему, когда я пытаюсь создать учетную запись, она работает идеально, но, используя их адрес электронной почты / имя, она всегда выдает ошибки… не имеет смысла для моего неопытного мозга?
Вот мой полный код
public bool CreateUser(string userName, string Email, string Password, string fName, string lName, string country, string ip)
{
try
{
// Default UserStore constructor uses the default connection string named: DefaultConnection
var userStore = new UserStore<IdentityUser>();
var manager = new UserManager<IdentityUser>(userStore);
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = 1,
RequireNonLetterOrDigit = false,
RequireDigit = false,
RequireLowercase = false,
RequireUppercase = false
};
var user = new IdentityUser() { UserName = userName, Email = Email, EmailConfirmed = false };
IdentityResult result = manager.Create(user, Password);
Utilities u = new Utilities();
var usersID = user.Id;
//u.SendMailConfirmation(Email, usersID, fName);
userDetails(usersID, ip, fName, lName, country);
var authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
var userIdentity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
authenticationManager.SignIn(new AuthenticationProperties() { }, userIdentity);
return true;
}
catch (Exception ex)
{
return false;
}
}
Комментарии:
1. Проверьте строку подключения. Если вы запросите базу данных напрямую, сможете ли вы найти пользователя?
2. Проверено, нет абсолютно никаких следов создания пользователя. На локальном SQL или живом SQL.
Ответ №1:
И вы уверены, что пользователь еще не существует с тем же адресом электронной почты?
Комментарии:
1. Я провел тест на своем локальном компьютере с другой базой данных, чтобы жить, так что я почти уверен, что это не так.
2. можете ли вы проверить различные параметры, такие как: Имя пользователя / Fakemail, имя пользователя / customerMail и имя пользователя/ customeremail@FakeDomain. Надеюсь, это сузит круг поисков.