///使用COOKIE對像實現保存用戶基本信息(結合
Session),ASP.Net實現用戶登錄全過程
//1.創建一個WEB用戶控件頁面
。添加兩個HTml 客戶端DIV 并專為服務控件 前臺代碼如下
<div id="divLogin" runat="server"> ……</div>
<div id="divMain" runat="server" > ……</div>
。在div divLogin 中添加 Label(用戶名) textBox(用戶名) Label( 密碼) textBOx(密碼) Checkbox(記住我) button(登入)
。在div DivMain 中 添加 Label(HI,) Label(XXX)
//2.WEB用戶控件的后臺代碼實現
protected void Page_Load(object sender, EventArgs e)
{
//判斷是否有Cookie信息可讀
if (Request.Cookies.Get("loginUserName") != null)
{
//將Cookie中的登錄信息讀取出來保存到Session["loginUser"]中
Session["loginUser"] = Request.Cookies["loginUserName"].Value;
}
//通過判斷Session["loginUser"]的值是否為空位判斷是否登陸過,以及顯示哪一個Div
if (Session["loginUser"] == null)
{
this.divLogin.Visible = true;
this.divMain.Visible = false;
}
else
{
this.divLogin.Visible = false;
this.divLoginMain.Visible = true;
this.lblUserMessage.Text = Session["loginUser"].ToString();
}
}
protected void btnLogin_Click(object sender, EventArgs e) //登錄按鈕Click事件
{
//保存登陸信息到Session["loginUser"]
if (ValidateUser(this.txtID.Text, this.txtPWD.Text))
{
Session["loginUser"] = this.txtID.Text;
//如果選擇了保存Cookie
if (this.chkIsSaveCookie.Checked)
{
HttpCookie cookie = new HttpCookie("loginUserName",this.txtID.Text);
cookie.Expires = DateTime.Now.AddMonths(1);
Response.Cookies.Add(cookie);
}
}
//刷新當前頁面
Response.Redirect(Request.Url.ToString());
}
/// <summary>
/// 這里省略了訪問數據庫驗證的過程
/// </summary>
/// <param name="id">登陸賬號</param>
/// <param name="pwd">登陸密碼</param>
/// <returns></returns>
public bool ValidateUser(string id, string pwd) //該方法用于數據驗證,此處略
{
return true;
}
protected void btnSafeExit_Click(object sender, EventArgs e) //安全退出按鈕Click事件
{
//清空Session中的用戶信息
Session["loginUser"] = null;
//將本地Cookie中的信息移除----讓Cookie過期
HttpCookie cookie = Request.Cookies["loginUserName"];
if (cookie != null)
{
cookie.Expires = DateTime.Now.AddDays(-10);
Response.Cookies.Add(cookie);
}
//刷新當前頁面
Response.Redirect(Request.Url.ToString());
}
標簽: Cookie