ASP.NET Identity 的 UserManager 中的错误
Bug in ASP.NET Identity's UserManager
MVC5 的 UserManager 似乎有一个错误:
我的代码:
public void InsertUser(KoreUser user, string password)
{
var appUser = new ApplicationUser
{
UserName = user.UserName,
Email = user.Email,
LockoutEnabled = user.IsLockedOut
};
userManager.Create(appUser, password);
}
此代码在几乎所有情况下都可以正常工作。当用户名包含 space 时除外。例如:
JohnDoe - 很好
John Doe - 不太好..
在后一个例子中,它默默地失败了;没有抛出异常..这里有什么问题?
这不是错误。不会抛出异常,因为在用户身份验证领域预计用户名无效是合理的。
创建用户名时的默认检查使用正则表达式模式 ^[A-Za-z0-9@_\.]+$
在创建用户之前验证名称。空白字符未通过此测试。
另一个需要注意的是,Usermanager 的 Create
方法 returns 是一个 IdentityResult 类型的对象。使用该对象,您可以检查是否成功并查看在未创建用户的情况下返回的错误。
MVC5 的 UserManager 似乎有一个错误:
我的代码:
public void InsertUser(KoreUser user, string password)
{
var appUser = new ApplicationUser
{
UserName = user.UserName,
Email = user.Email,
LockoutEnabled = user.IsLockedOut
};
userManager.Create(appUser, password);
}
此代码在几乎所有情况下都可以正常工作。当用户名包含 space 时除外。例如:
JohnDoe - 很好
John Doe - 不太好..
在后一个例子中,它默默地失败了;没有抛出异常..这里有什么问题?
这不是错误。不会抛出异常,因为在用户身份验证领域预计用户名无效是合理的。
创建用户名时的默认检查使用正则表达式模式 ^[A-Za-z0-9@_\.]+$
在创建用户之前验证名称。空白字符未通过此测试。
另一个需要注意的是,Usermanager 的 Create
方法 returns 是一个 IdentityResult 类型的对象。使用该对象,您可以检查是否成功并查看在未创建用户的情况下返回的错误。