会员提供者类

时间:2010-01-26 07:11:18

标签: c# asp.net

我想知道如何实现成员资格提供程序类,以便能够记住登录的用户。

我有会员提供者类,我需要“记住我”功能复选框,但我不知道如何实现某些方法

3 个答案:

答案 0 :(得分:2)

为了实现此功能,您必须在用户计算机上创建一个具有一些过期日期的持久性cookie。因此,如果用户选中记住我复选框,则会发出以下cookie:

var cookie = new HttpCookie("_some_cookie_name_", "username") 
{
    Expires = DateTime.Now.AddDays(15) // Remember user for 15 days
};
Response.Cookies.Add(cookie);

然后在显示登录屏幕时,您可以检查cookie是否存在并预填充用户名:

var cookie = Request.Cookies["_some_cookie_name_"];
if (cookie != null)
{
    usernameTextBox.Text = cookie.Value;
}

答案 1 :(得分:0)

我会使用Hashtable,如果它在C#中,由用户ID键入。像这样的东西(其中lsdfjk只是用户ID对应的任何字符串,并假设有一个UserInfo类定义,构造函数将字符串userID作为参数):

        string userID = "lsdfjk";
        UserInfo userInfo = null;
        Hashtable htMembers = new Hashtable();
        if (htMembers.ContainsKey(userID))
        {
            userInfo = (UserInfo)htMembers[userID];
        }
        else
        {
            //It's a new member
            userInfo = new UserInfo(userID);
        }

答案 2 :(得分:0)

“记住我”与会员提供商没有任何关系。基本上它只是表单身份验证的一个功能,您可以在其中设置持久性cookie,以便当人们出现在网站上时,它可以自动登录。

您可以使用RedirectFromLoginPage()方法自动执行此操作。

FormsAuthentication.RedirectFromLoginPage(username, true);

第二个参数“true”表示“设置持久性cookie”。用户将登录,直到cookie过期或他们清除他们的cookie。

如果您需要对其进行更多控制,可以通过直接操作cookie集合手动设置cookie。

相关问题