帮助实现简单/自定义的MembershipProvider [英] Help implementing simple / custom MembershipProvider

查看:135
本文介绍了帮助实现简单/自定义的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆