2010-01-26 59 views
0

我想知道我怎么能实现成员提供类要记住谁登录用户的能力。
会员提供一流的

我有会员提供一流的,我需要的“记住我”复选框,不过我还是要说功能不知道如何实现一些方法

+0

有点不清楚你的意思 - 这里有什么问题?写一个会员供应商?还是记录访问? – 2010-01-26 07:13:36

+0

我想他意味着他需要登录屏幕上的“记住我”复选框的功能。 – Iravanchi 2010-01-26 07:15:42

+0

否我的意思是写作会员供应商 – kamiar3001 2010-01-26 07:16:17

回答

2

为了实现此功能您必须在用户计算机上创建一个具有某个到期日期的永久性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; 
} 
0

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

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

为什么不使用强类型'Dictionary'类?我看到太多使用'ArrayList'和'Hashtable'的人。 – ChaosPandion 2010-01-26 07:27:56

0

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

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

FormsAuthentication.RedirectFromLoginPage(username, true); 

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

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