为什么 CreateAsync(user, password) 有时会失败? (身份 v2 MVC5)
Why would CreateAsync(user, password) sometimes fail? (Identity v2 MVC5)
我正在使用 Asp.Net MVC5 with Identity v2 进行身份验证。我为用户创建编写的函数在开发过程中运行良好。但是,由于我几天前发布了产品,我 有时 会收到 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
方法在什么条件下会[=22=]!createResult.Succeeded
?
感谢@alex-art,我才得以解决问题。这是 UserManager
class 中定义的规则,它不接受电子邮件/用户名中的非字母数字值。我在 ApplicationUserManager : UserManager
中扩展了 UserManager
以包含
AllowOnlyAlphanumericUserNames = false
解决这个问题。
我能够通过查看 createResult.Errors
列表来识别问题(@alex-art 指出。我通过将异常日志更改为:
if (!createResult.Succeeded)
{
var exceptionText = createResult.Errors.Aggregate("User Creation Failed - Identity Exception. Errors were: \n\r\n\r", (current, error) => current + (" - " + error + "\n\r"));
throw new Exception (exceptionText);
}
我正在使用 Asp.Net MVC5 with Identity v2 进行身份验证。我为用户创建编写的函数在开发过程中运行良好。但是,由于我几天前发布了产品,我 有时 会收到 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
方法在什么条件下会[=22=]!createResult.Succeeded
?
感谢@alex-art,我才得以解决问题。这是 UserManager
class 中定义的规则,它不接受电子邮件/用户名中的非字母数字值。我在 ApplicationUserManager : UserManager
中扩展了 UserManager
以包含
AllowOnlyAlphanumericUserNames = false
解决这个问题。
我能够通过查看 createResult.Errors
列表来识别问题(@alex-art 指出。我通过将异常日志更改为:
if (!createResult.Succeeded)
{
var exceptionText = createResult.Errors.Aggregate("User Creation Failed - Identity Exception. Errors were: \n\r\n\r", (current, error) => current + (" - " + error + "\n\r"));
throw new Exception (exceptionText);
}