如何在Asp.Net Identity Framework中向AspNetUsers表添加字段?

时间:2014-05-10 16:24:58

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

我正在探索新的asp.net身份。使用代码优先和迁移功能向Users表“AspNetUsers”添加字段似乎很棒。

我想添加“Name”,“CreatedOn”和“CreatedFromIP”等列,并能够从.NET中读取它

有简单的解决方案吗?

3 个答案:

答案 0 :(得分:3)

您只需从App_Start文件夹中打开数据库并修改字段即可。 (如果您使用模板)

答案 1 :(得分:1)

public class ApplicationUser : IdentityUser
{
    public string YourProperyHere { get; set; }

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {
        // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
        var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
        // Add custom user claims here
        return userIdentity;
    }
}

了解更多here

答案 2 :(得分:0)

当您设置新的Identity Framework项目时,Visitor类作为模板提供,并且该类与AspNetUsers表绑定。它继承了你很弱/无法控制的一堆属性,然后你可以添加你想要的任何东西。

public class Visitor : IdentityUser
{
    [MaxLength(300)]
    public string FirstName { get; set; }

    [MaxLength(300)]
    public string LastName { get; set; }

    public DateTime CreatedOn { get; set; }


    public Visitor()
    {
        CreatedOn = DateTime.UtcNow;
    }
}

我还没有找到修改甚至直接查询AspNetUserLogins表的方法,因为默认的Identity Framework设置为您提供了一个可以访问用户和角色但不能登录的数据库。此外,该表位于用户的下方,但是,它不会让您查询它。并且,您至少在默认情况下坚持使用Identity Framework附带的库存类;对它进行子类化并使框架使用该子类可能不在桌面上。不知道,值得自己提出问题:

Add Columns/Properties to AspNetUserLogins/Logins in IdentityDbContext