0

我一直遵循Steve Sandersons MVC2書籍並實現了簡單/自定義MembershipProvider。你不會認爲有效的用戶是硬編碼的。我的問題是我如何得到這個來驗證我的「個人檔案」SQLServer表?幫助實現簡單/自定義MembershipProvider

PS - 我使用EF 4.1代碼第一次

請參閱以下內容:

public class Profile 
{ 
    [Key] 
    public int UserId { get; set; } 

    [Required] 
    public string UserName { get; set; } 

    [Required] 
    public string Password { get; set; } 
} 

public class SimpleMembershipProvider : MembershipProvider 
{ 
    private static List<Profile> Members = new List<Profile> 
    { 
     new Profile { UserId = 1, UserName = "admin", Password = "qwerty123" } 
    }; 

    public override bool ValidateUser(string username, string password) 
    { 
     return Members.Exists(m => (m.UserName == username) && (m.Password == password)); 
    } 

回答

1

你需要讓你的用戶安全數據表。下面是開始2個表:

用戶名錶:

UserID UserName 
1   alex 
2   john 

UserSecurityDetails表:

UserID Password 
1   qwerty123 
2   password1 

然後你想使你的模型(製作UserObjectContext)這些表周圍。用戶標識之間應該有關聯。

然後你可以在你的驗證方法中使用這些模型。例如:

public override bool ValidateUser(string username, string password) 
{ 
    using(var context = new UserObjectContext()) 
    { 
     return context.UserNames.Any(u => u.UserName == username && u.UserSecurityDetails.Password == password); 
    } 
} 
+0

嗨,ty爲您的答覆。 所以我「需要」兩張桌子?我無法使用我在「公開課檔案」中描述的現有「檔案」表格嗎? 謝謝Paul – 2011-03-24 21:40:57

+0

不,我會用兩張桌子來做,但它可以和一張相同。你會發現,雖然Profile實體將被自動生成,但是當你爲數據建模時,你並不需要編寫該類。 – BritishDeveloper 2011-03-24 21:47:04

+0

好的,非常感謝。我不認爲你有任何網絡鏈接可以幫助我更進一步嗎? 感謝保羅 – 2011-03-24 22:08:40