ASP.NET Identity的UserManager中的错误

时间:2015-05-06 13:32:28

标签: asp.net-mvc-5 asp.net-identity

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);
}

这些代码在几乎所有情况下都能正常工作..例外情况是UserName包含空格时...例如:

JohnDoe - 很好

John Doe - 不错......

在后一个例子中,它默默地失败;没有例外。这里的问题是什么?

1 个答案:

答案 0 :(得分:0)

这不是一个错误。不会抛出异常,因为在用户身份验证领域期望用户名无效是合理的。

创建用户名时完成的默认检查使用正则表达式模式^[A-Za-z0-9@_\.]+$在创建用户之前验证名称。空白字符没有通过此测试。

另一个注意事项是Usermanager的Create方法返回类型为IdentityResult的对象。使用该对象,您可以检查是否成功,并查看在未创建用户的情况下返回的错误。