【发布时间】:2014-12-16 23:03:10
【问题描述】:
我的应用程序是 MVC5,我尝试使用以下方法允许重复的电子邮件地址:
public async Task<ActionResult> AddUser (UserRegisterViewModel userViewModel)
{
......
if (ModelState.IsValid)
{
var user = new ApplicationUser
{
......
};
var adminresult = await UserManager.CreateAsync(user);
var result = await UserManager.AddToRolesAsync(user.Id, user.Profession);
UserManager.UserValidator = new UserValidator<ApplicationUser>(UserManager)
{
RequireUniqueEmail = false
};
if (adminresult.Succeeded)
{
....
return RedirectToAction("VisitInfo", "Visit");
}
if (!adminresult.Succeeded)
{
var er = adminresult.Errors.FirstOrDefault();
ViewBag.Error = er;
return View(userViewModel);
}
return RedirectToAction("VisitInfo", "Visit");
}
return View();
}
通过添加 RequireUniqueEmail = false。它不起作用,页面被重定向到登录页面! 我的问题是,我是否可以仅针对此操作允许重复电子邮件,以及为什么我会被重定向到登录页面?
【问题讨论】:
-
该代码是否都在
AddUser方法中?如果是这样,您将在创建用户之后设置UserValidator。它需要进入IdentityConfig.cs -
谢谢布伦丹。我可以这样做,但是我需要为其他注册表单设置此规则。
-
如果将其放在
IdentityConfig.cs中,那么它将适用于整个站点。就目前而言,您在创建用户之后设置RequireUniqueEmail标志。
标签: asp.net-mvc validation asp.net-identity