ASP Identity,RequireUniqueEmail = true无效

时间:2016-02-19 14:04:08

标签: c# asp.net asp.net-mvc asp.net-identity

我开发了ASP.NET MVC5应用程序(不是ASP 5)。 我想允许用户稍后更改电子邮件。 出于这个原因,我不希望用户名等于电子邮件。 我是这样做的(通过生成用户名):

var user = new ApplicationUser { UserName = GenerateUserName(), Email = model.Email };

同时我希望电子邮件是唯一的,所以我在IdentityConfig.cs中设置RequireUniqueEmail = true:

            manager.UserValidator = new UserValidator<ApplicationUser, int>(manager)
        {
            AllowOnlyAlphanumericUserNames = false,
            RequireUniqueEmail = true
        };

问题是:为什么UserManager使用现有的电子邮件(非用户名)成功创建新用户?

var result = await UserManager.CreateAsync(user, model.Password);

我的猜测是,它检查UserName唯一性(在我的情况下由GenerateUserName()方法提供)。如果我的猜测是正确的 - RequireUniqueEmail属性被错误地命名为,那么它可能应该被命名为RequireUniqueUserName。或者还有我不知道的其他原因。请帮忙。

0 个答案:

没有答案