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