【问题标题】:Duplicate usernames in UserProfileUserProfile 中的重复用户名
【发布时间】:2014-01-10 11:14:23
【问题描述】:

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

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

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

UserID 用户名
100 个我的用户
101 我的用户
第134章
第187章

我的网站仍按预期运行,因为 UserPfofile 中的重复条目未映射 pages_Membership 表中的任何记录(因此实际上仍然只有 1 个名为“myuser”的用户)

但是,我无法弄清楚这些副本是如何创建的。

任何帮助将不胜感激

【问题讨论】:

  • 您能否提供您的操作代码:Register(RegisterModel model) 或等效项?您是否使用自定义用户和帐户创建?您是否使用初始化脚本设置数据库?

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


【解决方案1】:

在您的模型中使用 CustomValidationAttribute

假设你的模型如下

 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;
            }
        }
    }

所以每当新用户尝试注册时,您可以检查用户名是否已经存在?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2013-10-01
    • 1970-01-01
    • 2023-03-04
    • 2022-06-25
    相关资源
    最近更新 更多