Пользовательский простой поставщик членства, добавляющий строку

У меня есть пользовательский SimpleMembershipProvider, и я определил все таблицы, которые требуются для SimpleMembershipProvider, например webpages_Membership:

[Table("webpages_Membership")]
public class Membership
{
    public Membership()
    {
        Roles = new List<Role>();
        OAuthMemberships = new List<OAuthMembership>();
    }

    [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int UserId { get; set; }
    public DateTime? CreateDate { get; set; }
    [StringLength(128)]
    public string ConfirmationToken { get; set; }
    public bool? IsConfirmed { get; set; }
    public DateTime? LastPasswordFailureDate { get; set; }
    public int PasswordFailuresSinceLastSuccess { get; set; }
    [Required, StringLength(128)]
    public string Password { get; set; }
    public DateTime? PasswordChangedDate { get; set; }
    [Required, StringLength(128)]
    public string PasswordSalt { get; set; }
    [StringLength(128)]
    public string PasswordVerificationToken { get; set; }
    public DateTime? PasswordVerificationTokenExpirationDate { get; set; }

    public ICollection<Role> Roles { get; set; }

    [ForeignKey("UserId")]
    public ICollection<OAuthMembership> OAuthMemberships { get; set; }
}

Но как мне добавить запись в эту таблицу с помощью метода Seed() в файле configuration.cs, который миграция создает при включении?


person Yustme    schedule 14.05.2013    source источник


Ответы (1)


Предполагая, что у вас правильно настроен пользовательский поставщик членства в web.config, вы сможете добавить запись в методе Seed, выполнив это.

 var membership = (MyMembershipNamespace.SimpleMembershipProvider)Membership.Provider;
 membership.CreateUserAndAccount("test", "password");
person Kevin Junghans    schedule 15.05.2013
comment
Привет, кажется, это работает, но почему PasswordVerificationToken не заполняется в базе данных? - person Yustme; 15.05.2013
comment
PasswordVerificationToken заполняется только при вызове GeneratePasswordResetToken [msdn.microsoft.com/en-us/library/gg548086(v=vs.111).aspx], который используется для процесса сброса пароля. - person Kevin Junghans; 16.05.2013