2015-06-05 1 views
1

У меня есть настройка базы данных с таблицей AspNetUsers, и я использую код по умолчанию, предоставляемый в .NET-решении для регистрации, входа в систему, сброса пароля и т. Д.ASP IdentityUser ApplicationUser - Как зарегистрироваться несколько раз

База данных должна быть запущена на нескольких веб-сайтах, поэтому мне нужно учитывать возможность того, что один пользователь с заданным адресом электронной почты может зарегистрироваться на двух наших сайтах. У меня есть этот код, чтобы создать новый пользователь, после проверки и других настроек: -

var applicationUser = new ApplicationUser { UserName = user.Email, Email = user.Email, RevolveID = revolveID, CandidateID = candidate.CandidateID }; 
var registrationResult = await UserManager.CreateAsync(applicationUser, user.Password); 

Испытывает registrationResult для статуса успеха, но по отладке это не удается, потому что моя электронная почта уже занята. Мне нужно это, чтобы иметь возможность иметь дело со мной, подписывая несколько раз. Я видел, что есть столбец IsEnabled, но это может не помочь на разных сайтах, потому что одновременно могут включаться две учетные записи на разных сайтах?

Каков наилучший способ обойти это? Лучше ли вручную создать пользователя в этой таблице? Я добавил столбец SiteID в таблицу AspNetUsers в качестве метки для разграничения между сайтами, но у меня нет доступа к изменению функциональности ApplicationUser, чтобы он учитывал это.

Кто-нибудь сталкивался с этим раньше?

Спасибо! Майк.

+0

Создание дублирующего пользователя из любого места должно завершиться неудачно. Это ожидаемое поведение. Вы должны искать SSO, обратитесь к http://www.codeproject.com/Articles/106439/Single-Sign-On-SSO-for-cross-domain-ASP-NET-applic – Anil

+0

Спасибо за это, я дам вам прочитайте. –

ответ

0

Немного поздно. Если проблема является дубликатом адрес электронной почты (не дубликат имя пользователя), этот кусок кода в моем обычае UserManager установил его:

manager.UserValidator = New UserValidator(Of ApplicationUser, Integer)(manager) With { 
      .AllowOnlyAlphanumericUserNames = False, 
      .RequireUniqueEmail = False 
     } 

Существенная часть курса установки RequireUniqueEmail ложь.

Извините, VB, не мой выбор!

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