UserProfile中的重复用户名

时间:2014-01-10 11:14:23

标签: asp.net-mvc entity-framework simplemembership

我正在使用ASP.net MVC 4和Entity Framework 5构建网站。

我使用SimpleMembership作为会员提供商。

我最近注意到UserProfile表中有许多重复的用户名。例如

UserID用户名
100 myuser
101 myuser
134 myuser
187 myuser

我的网站仍然按预期工作,因为UserPfofile中的重复条目不会映射webpages_Membership表中的任何记录(因此实际上只有1个用户称为“myuser”)

但是,我无法弄清楚如何创建这些重复项。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分: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是否已存在?