2014-01-10 3 views
1

Я строю сайт, используя ASP.NET MVC 4 и Entity Framework 5.Повторяющиеся имена пользователей в UserProfile

Я использую SimpleMembership в качестве поставщика членства.

Недавно я заметил, что в таблице UserProfile имеется несколько повторяющихся имен пользователей. Например

Идентификатор_пользователя Имя пользователя
100 MyUser
101 MyUser
134 MyUser
187 MyUser

Мой сайт по-прежнему работает, как ожидалось дублирующих записей в UserPfofile не отображают не какие-либо записи в webpages_Membership table (так что все еще эффективно только один пользователь, называемый «myuser»)

Однако я не могу понять, как создаются эти дубликаты.

Любая помощь будет оценена

+0

Не могли бы вы предоставить свой код для действия: зарегистрируйтесь (модель RegisterModel) или эквивалент? Используете ли вы пользовательский учет и создание учетной записи? Вы настраиваете свою базу данных с помощью сценария инициализации? –

ответ

1

В вашей модели использования CustomValidationAttribute

AS Предположим, у вас есть модель, как показано ниже, чем

public class RegisterModel 
{ 

    [CustomValidation(typeof(RegisterModel), "CheckUserNameExists")] 
    [Required(ErrorMessage="Required")]  
    public string UserName { get; set; } 
} 

Теперь создайте статический метод, как показано ниже

public static ValidationResult CheckUserNameExists(string userName) 
    { 

     User user = SessionUserNameEntity; 

     if (user != null && user.UserName == userName) 
     { 
      return ValidationResult.Success; 
     } 
     else 
     { 
      if (userName != null) 
      { 
       User chkUser = new User(); 
       chkUser = FetchSingleUserFromExistDB(userName); 
       if (chkUser != null) 
       { 
        return new ValidationResult(Global.UserNameAlreadyRegistered); 
       } 
       else 
       { 
        return ValidationResult.Success; 
       } 
      } 
      else 
      { 
       return null; 
      } 
     } 
    } 

Поэтому всякий раз, когда новый пользователь пытается зарегистрироваться, вы можете проверить, что UserName уже существует или нет?

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