2015-05-06 2 views
0

MVC5 в UserManager, кажется, ошибка:Ошибка в UserManager ASP.NET удостоверений

Мой код:

public void InsertUser(KoreUser user, string password) 
{ 
    var appUser = new ApplicationUser 
    { 
     UserName = user.UserName, 
     Email = user.Email, 
     LockoutEnabled = user.IsLockedOut 
    }; 
    userManager.Create(appUser, password); 
} 

Этот код отлично работает почти во всех случаях .. исключение составляют когда UserName содержит пространство .. например:

JohnDoe - прекрасный

John Doe - не в порядке.

В последнем примере он бесшумно терпит неудачу; никакое исключение не было. В чем проблема?

ответ

0

Это не ошибка. Исключение не выбрасывается, потому что разумно ожидать недействительного имени пользователя в стране аутентификации пользователя.

Проверка по умолчанию, выполненная при создании имени пользователя, использует шаблон regex ^[[email protected]_\.]+$ для проверки имени перед созданием пользователя. Символ пробела не проходит этот тест.

Другое примечание состоит в том, что метод Usermanager Create возвращает объект типа IdentityResult. С помощью этого объекта вы можете проверить успех и посмотреть, какие ошибки возвращаются в случае, если пользователь не создан.

+0

Благодарим за отзыв. Хотя я знал о том, что не допускал пробела (это имя пользователя, в конце концов, а не настоящее имя пользователя), я подумал, что это странно, что не было сделано никаких исключений .. спасибо за отзыв о IdentityResult. – Matt

+0

Обычно исключения не выбрасываются, если ничего исключительного не происходит. Вместо этого объекты используются для представления состояния операции. – Shoe

Смежные вопросы