SPA模板VS2013自定义属性IdentityUser

时间:2013-11-28 08:06:29

标签: single-page-application asp.net-mvc-5

我正在尝试向Identity User 2013 Spa模板添加自定义属性。当我在F12中获得不可编辑的程序集中的模型时,身份用户模型不在项目中。我已阅读教程以向Identity模型添加出生日期,但是此示例说明了从Web窗体预期更改Identity User模型,并且它似乎具有要编辑的UserIdentity模型。如何向AspNetUser表添加自定义属性?

1 个答案:

答案 0 :(得分:0)

我发现了同样的事情。大多数在线SPA模板资源似乎与模板的早期版本(VS2012)相关,这非常令人困惑。但是,通过比较MVC模板生成的代码,我得出了我需要做的事情。

  1. 在Models文件夹中创建自己的“ApplicationIdentity”和“ApplicationDbContext”类。在ApplicationIdentity类定义中包含所需的任何其他属性。在下面的示例代码中,我为电子邮件地址添加了一个字符串。

    using Microsoft.AspNet.Identity.EntityFramework;
    
    namespace SimpleSPA.Models {
    
       public class ApplicationUser: IdentityUser
       {
          public string Email { get; set; }
       }
    
       public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
       {
          public ApplicationDbContext():base("DefaultConnection")
          {
          }
       }
    }
    
  2. 使用解决方案Search and Replace将所有对“IdentityUser”的引用替换为新的ApplicationUser。

  3. 更新Startup.Auth.cs中的Startup静态构造函数,以便UserManagerFactory初始化包含您的新ApplicationDbContext,如下所示。

    UserManagerFactory = () => new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
    
  4. 重建解决方案,检查建立确定。

  5. 启用实体框架代码首次使用程序包管理器(PM)控制台中的“启用 - 迁移”命令进行迁移。

  6. 使用PM命令“Add-Migration Initial”添加初始迁移。

  7. 使用PM命令“Update-Database”初始化数据库。

  8. 如果连接到生成的数据库,则应该看到AspNetUsers表包含用于其他ApplicationUser属性的列。我还没有走得太远,但我希望通过使用ApplicationUser而不是基本的IdentityUser,我将能够访问我的新属性。