帮助实现简单/自定义的MembershipProvider [英] Help implementing simple / custom MembershipProvider
问题描述
我一直跟着史蒂夫Sandersons MVC2书,并已实现了一个简单/自定义的MembershipProvider。你不会是一个有效的用户已经很难codeD。我的问题是我怎么得到这个验证对我的情景模式SQLServer的表?
PS - 我使用EF 4.1 code首先
请参阅以下内容:
公共类档案
{
[键]
公众诠释用户ID {搞定;组; } [需要]
公共字符串用户名{获得;组; } [需要]
公共字符串密码{搞定;组; }
}公共类SimpleMembershipProvider:的MembershipProvider
{
私人静态列表<&档案GT;会员=新的List<&档案GT;
{
新的配置文件{用户ID = 1,用户名=admin的,密码=qwerty123}
}; 公众覆盖布尔的ValidateUser(用户名字符串,字符串密码)
{
返回Members.Exists(M =>(m.UserName ==用户名)及及(m.Password ==密码));
}
您需要让你的用户的安全数据表。这里有2个表的启动:
用户名表:
用户名用户名
1亚历克斯
2约翰·
UserSecurityDetails表:
用户名密码
1 qwerty123
2密码1
您然后想使你的模型(制作UserObjectContext)这些表左右。应该有用户ID之间的关联。
然后你就可以在你验证方法使用这些车型。是这样的:
公共覆盖布尔的ValidateUser(用户名字符串,字符串密码)
{
使用(VAR上下文=新UserObjectContext())
{
返回context.UserNames.Any(U => u.UserName ==用户名和放大器;&安培; u.UserSecurityDetails.Password ==密码);
}
}
I have been follow Steve Sandersons MVC2 book and have implemented a simple / custom MembershipProvider. You will not that a valid user has been hardcoded. My question is how do I get this to validate against my "Profiles" SQLServer table?
PS - I am using EF 4.1 Code First
Please see below:
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));
}
You need to make your User security data tables. Here's 2 tables for start:
UserNames table:
UserID UserName
1 alex
2 john
UserSecurityDetails table:
UserID Password
1 qwerty123
2 password1
You then want to make your models (making a UserObjectContext) around those tables. There should be an association between the userIDs.
Then you can use those models in you validate method. Something like:
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);
}
}
这篇关于帮助实现简单/自定义的MembershipProvider的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!