Asp.net-Mvc

SimpleMemership CreateUserAndAccount 自定義

  • January 27, 2013

我正在嘗試向UserProfile模型中的類添加一個新屬性

public class UserProfile
{
   [Key]
   [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
   public int UserId { get; set; }
   public string UserName { get; set; }
   [Required]
   [DataType(DataType.EmailAddress)]
   [Display(Name = "Email Address")]
   public string Email { get; set; } \\this is the new property
   public virtual IList<Game> Games { get; set; }
}

我正在嘗試將它添加到我的Configurations.cs文件中的種子方法中

private void SeedMembership()
   {
       WebSecurity.InitializeDatabaseConnection("MafiaContext",
           "UserProfile", "UserId", "UserName", autoCreateTables: true);

       var roles = (SimpleRoleProvider)Roles.Provider;
       var membership = (SimpleMembershipProvider)Membership.Provider;

       if (!roles.RoleExists("Administrator"))
       {
           roles.CreateRole("Administrator");
       }
       if (membership.GetUser("drew", false) == null)
       {

           membership.CreateUserAndAccount(
               "drew", 
               "password", false,
               new { Email = "myemail@gmail.com" }); \\ this line errors
       }
       if (!roles.GetRolesForUser("drew").Contains("Administrator"))
       {
           roles.AddUsersToRoles(new[] { "drew" }, new[] { "Administrator" });
       }
   }

但是,我收到一個錯誤:

Error 2 Argument 4: cannot convert from 'AnonymousType#1' to 'System.Collections.Generic.IDictionary<string,object>' C:\Code\Mafia\Mafia.EF\Migrations\Configuration.cs 65 21 Mafia.EF

我遵循了範例,例如:http ://blog.longle.net/2012/09/25/seeding-users-and-roles-with-mvc4-simplemembershipprovider-simpleroleprovider-ef5-codefirst-and-custom-user-特性/

但我什麼都想不出來……我的WebMatrix.WebData版本是v4.0.30319

有什麼想法嗎?

試試這樣:

private void SeedMembership()
{
   WebSecurity.InitializeDatabaseConnection(
       "MafiaContext",
       "UserProfile", 
       "UserId", 
       "UserName", 
       autoCreateTables: true
   );

   if (!Roles.RoleExists("Administrator"))
   {
       Roles.CreateRole("Administrator");
   }

   if (!WebSecurity.UserExists("drew"))
   {
       WebSecurity.CreateUserAndAccount(
           "drew", 
           "password",
           new { Email = "myemail@gmail.com" },
           false
       );
   }

   if (!Roles.GetRolesForUser("drew").Contains("Administrator"))
   {
       Roles.AddUsersToRoles(new[] { "drew" }, new[] { "Administrator" });
   }
}

這是nice tutorial關於您可能會考慮使用的 SimpleMembershipProvider 的內容。

引用自:https://stackoverflow.com/questions/14542257