【发布时间】:2015-10-12 06:58:54
【问题描述】:
我正在使用带有 Identity v2 的 Asp.Net MVC5 进行身份验证。我为创建用户而编写的函数在开发过程中运行良好。但是,由于几天前我已经发布了生产环境,因此我有时会遇到 CreateAsync(user, pass) 方法的异常。这是我的简化代码:
var store = new UserStore<SiteUser>(dc);
var userManager = new UserManager<SiteUser>(store);
var user = new SiteUser
{
UserName = email,
Email = email,
MemberID = member.MemberID
};
var createResult = await userManager.CreateAsync(user, rawPassword);
if (!createResult.Succeeded)
throw new Exception("User Creation Failed - Identity Exception");
我的问题是,为什么我会有时得到这个例外?换句话说,这个CreateAsync方法会在什么条件下返回!createResult.Succeeded?
【问题讨论】:
-
你遇到了什么异常?
-
我手动抛出异常,如上面的代码。方法只为
createResult.Succeeded返回 false。除此之外,遗憾的是它还没有开源。 -
您可以检查结果的
Errors属性:createResult.Errors看看为什么它没有成功。 -
好的,不知道谢谢。我修改了我的异常日志如下,并在我第一次看到它时发布出了什么问题:createResult.Errors.Aggregate("User Creation Failed - Identity Exception. Errors are: \n\r\n\r", (current , error) => 当前 + (" - " + error + "\n\r"));
-
这非常有帮助,谢谢。错误信息是“用户名 XXXXX-XXX@hotmail.com 无效,只能包含字母或数字”。所以,是的,我知道问题所在。你知道我该如何改变这种行为,我需要能够接受那些连字符吗?
标签: asp.net-mvc asp.net-identity