![](/img/trans.png)
[英]Auto-discover exchange where username != email-address. Use URN rather than domain\username?
[英]Add user to role where username is email address
调用下面的代码可将当前经过身份验证的用户分配给名为Admin
的角色。 已经使用正确配置的电子邮件地址创建了该用户,我可以对其进行身份验证。 但是,我想使用下面的演示代码将用户添加到角色。
public ActionResult AddUserToRole()
{
var userId = User.Identity.GetUserId();
using (var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
{
IdentityResult result = userManager.AddToRole(userId, "Admin");
}
return RedirectToAction("Index");
}
使用新MVC 5应用程序中的模板代码创建了用户。 模板代码要求输入用户名的电子邮件地址。 但是, AddToRole
行的结果返回AddToRole
result.Succeeded = false
,错误为
用户名jason@xxxxxxx.xx.xx无效,只能包含字母或数字。
角色调用为何应用验证程序,而创建用户的调用却没有应用? 全部都是模板代码。
现在,考虑到所有这些都是模板代码,我是否需要丢失某些内容还是需要修改模板,以使用户提供的用户名不是电子邮件地址。
非常感谢。
我有同样的问题。 要解决此问题,请在调用AddToRole()之前添加以下行:
userManager.UserValidator = new UserValidator<ApplicationUser>(userManager) { AllowOnlyAlphanumericUserNames = false };
也许有人知道一个更优雅的解决方案,但这对我有用,所以我没有进一步研究!
高温超导
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.