2013-05-17 48 views
1

是否有可能的字段/列添加到webpages_Membership將字段添加到webpages_Membership SimpleMembershipProvider

[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; } 
} 

我想LogonCount添加爲一個字段/列,但這個表就會自動由membership provider在創建一個CreateUserAndAccount()填補。

我似乎並沒有對給予LogonCount在CreateUserAndAccount()值的任何影響。

回答

1

標準的方式來增加有關定UserID信息是在UserProfile表,而不是webpages_Membership表。請參閱my answer hereJon Galloway's post關於「SimpleMembership,成員提供者,通用提供者和新的ASP.NET 4.5 Web窗體和ASP.NET MVC 4模板」以獲取關於SimpleMembership如何與UserProfile結合在一起的更多信息。

我似乎並沒有對給予LogonCount值的任何影響......

然後你通過你的數據庫環境訪問UserProfile表和信息,而不是通過會員供應商,其實際上只是爲了讓您訪問一組核心功能。

using (MyDbContext db = new MyDbContext()) 
{ 
    UserProfile user = db.UserProfiles 
    .First(u => u.UserName.ToLower() == model.UserName.ToLower()); 
    user.LogonCount = 1; 
    db.SaveChanges(); 
} 
+0

嗨,好的,所以webpages_Membership是禁止的。得到它了。 – Yustme

+0

您可能可以使用它,但您不想像成員提供者那樣關心它的模式,就像您在做什麼 –

+0

@Yustme一樣。在[我的SO回答在這裏](http://stackoverflow.com/a/16734651/1945631)的答案中添加了一個ref,以獲取關於SimpleMembership如何與'UserProfile'結合在一起的更多信息,這可能也有幫助。 –