开发者

Membership provider class

I want to know how I can implement membership provider class to have ability to remember users who signed in.

开发者_如何学运维

I have Membership provider class and I need functionality of "Remember Me" checkbox but I don't know how I can implement some methods


In order to implement this functionality you must create a persistent cookie with some expiration date on the users computer. So if the user checks the Remember me checkbox you issue the following cookie:

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

And then upon showing the login screen you could check if the cookie is present and prefill the username:

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


I would use a Hashtable if it's in C#, keyed by the user id. Something like this (where lsdfjk is just whatever string the user ID corresponds to, and assuming that there is a class UserInfo defined, with a constructor taking string userID as an argument):

        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);
        }


"Remember Me" doesn't have anything to do with a Membership Provider really. Basically it is just a function of Forms Authentication, where you set a persistent cookie so that when people show up at the website, it can log them in automatically.

You can do this automatically using the RedirectFromLoginPage() method.

FormsAuthentication.RedirectFromLoginPage(username, true);

The second parameter, "true", means "set a persistent cookie". The user will be logged in until the cookie expires or they clear their cookies.

If you need more control over it, you can manually set a cookie by manipulating the cookies collection directly.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜