Asp.Net Identity 2重复用户名检查

时间:2014-11-02 22:45:43

标签: asp.net asp.net-identity

Asp.Net Identity 2中的UserManager通过对数据库的额外请求来阻止具有重复用户名的创建用户以查找可能的重复。我认为这容易出错并且可能导致并发错误。正确的机制应该依赖于唯一约束或索引。我错了,我错过了什么?

来源链接: CreateAsyncValidateUserName

1 个答案:

答案 0 :(得分:3)

不,你没错。 Identity在Username列上添加唯一索引:

Tables generated by Identity

此表的迁移代码为:

        CreateTable(
            "dbo.AspNetUsers",
            c => new
                {
                    Id = c.String(nullable: false, maxLength: 128),
                      /*  .... SNIP .... */
                    UserName = c.String(nullable: false, maxLength: 256),
                })
            .PrimaryKey(t => t.Id)
            .Index(t => t.UserName, unique: true, name: "UserNameIndex");

列上清楚地设置了唯一索引。

P.S。你正在寻找身份v3 - 它没有发布。 Current Identity v2.1尚未开源。