ASP.NET 記住使用者名稱和密碼
阿新 • • 發佈:2019-02-02
using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Web.UI;
6 using System.Web.UI.WebControls;
7 using System.Data;
8
9 public partial class _Default : System.Web.UI.Page
10 {
11 protected void Page_Load(object sender, EventArgs e)
12 {
13 if (!IsPostBack)
14 {
15 //讀取儲存的Cookie資訊
16 HttpCookie cookies = Request.Cookies["USER_COOKIE"];
17 if (cookies != null)
18 {
19 //如果Cookie不為空,則將Cookie裡面的使用者名稱和密碼讀取出來賦值給前臺的文字框。
20 this.txtUserName.Text = cookies["UserName"];
21 this.txtPassword.Attributes.Add("value", cookies["UserPassword"]);
22 //這裡依然把記住密碼的選項給選中。
23 this.ckbRememberLogin.Checked = true;
24 }
25 }
26 }
27
28 protected void ASPxButton1_Click(object sender, EventArgs e)
29 {
30 string UserName = txtUserName.Text;
31 string Password = txtPassword.Text;
32 //這個UserTable是資料層獲取的使用者資訊。
33 DataTable UserTable = new UserManager().GetUserTable(UserName);
34 //UserTable.Rows.Count>0說明資料庫中有對應的記錄,可以繼續執行。
35 if (UserTable.Rows.Count > 0)
36 {
37 //如果從Cookie裡面獲取的密碼和資料庫裡面的密碼一致則算是登入成功
38 if (UserTable.Rows[0]["Password"].ToString() == Password)
39 {
40 HttpCookie cookie = new HttpCookie("USER_COOKIE");
41 if (this.ckbRememberLogin.Checked)
42 {
43 //所有的驗證資訊檢測之後,如果使用者選擇的記住密碼,則將使用者名稱和密碼寫入Cookie裡面儲存起來。
44 cookie.Values.Add("UserName", this.txtUserName.Text.Trim());
45 cookie.Values.Add("UserPassword", this.txtPassword.Text.Trim());
46 //這裡是設定Cookie的過期時間,這裡設定一個星期的時間,過了一個星期之後狀態保持自動清空。
47 cookie.Expires = System.DateTime.Now.AddDays(7.0);
48 HttpContext.Current.Response.Cookies.Add(cookie);
49 }
50 else
51 {
52 if (cookie["USER_COOKIE"] != null)
53 {
54 //如果使用者沒有選擇記住密碼,那麼立即將Cookie裡面的資訊情況,並且設定狀態保持立即過期。
55 Response.Cookies["USER_COOKIE"].Expires = DateTime.Now;
56 }
57 }
58 //ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Script", "<script>alert('" + ex.Message + "')</script>", false);
59
60 Response.Redirect("Default.aspx");
61
62 }
63 }
64 }
65 }