Webform(六)——登錄狀態保持(Cookies內置對象)


      用戶用瀏覽器訪問一個網站,由於采用的http的特性,Web服務器並不能知道是哪一個用戶正在訪問,但一些網站,希望能夠知道訪問者的一些信息,例如是不是第一次訪問,訪問者上次訪問時是否有未做完的工作,這次是否為其繼續工作提供方便等等。用瀏覽器訪問一個網站,可以在此網站的網頁之間跳轉,當從第一個網頁轉到第二個網頁時,第一個網頁中建立的所有變量和對象都將不存在。有時希望在這些被訪問的網頁中建立聯系,例如一個網上商店,訪問者可能從不同的網頁中選取不同的商品,那么用什么辦法記錄該訪問者選取的商品,也就是一般所說的購物筐如何實現。用Cookie對象可以解決以上問題。

一、cookies

簡單摘要:    

       用戶電腦的硬盤上保存的一段文本

       http協議包括瀏覽器,允許站點在用戶電腦上以Cookies的形式來臨時保存數據

       如沒有設置保存時間,即會話cookies時:

1、如果你20分鍾內沒有再次刷新頁面,那么此cookies就會自動刪除掉

2、當前訪問連接中斷,如關閉瀏覽器,那么cookies會自動刪除

        如果設置保存時間,到時間后,cookies會自動刪除 

       當然,cookies的保存與否,關鍵在用戶,用戶可以手動清楚cookie。

       作用:保持用戶的登陸狀態

用法:

1、獲取賬號:Response.Cookies["user"].Value = TextBox1.Text;

2、給該賬號設置登錄保持的過期時間:Response.Cookies["user"].Expires = DateTime.Now.AddDays(7);

3、清除cookies:Response.Cookies["user"].Expires = DateTime.Now.AddDays(-5); 只要讓數值為負即可,表示已過期幾天

 


 

二、登錄狀態保持實例

建立登錄Login頁面:

前台代碼:

<form id="form1" runat="server">
    用戶名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
        密碼:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
        <asp:CheckBox ID="CheckBox1" runat="server" /><label for="CheckBox1">記住登陸狀態7天</label><br />

        <asp:Button ID="Button1" runat="server" Text="登陸" />
    </form>

后台代碼:

protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { //取值,數據庫查詢
        bool ok = new UsersDA().Select(TextBox1.Text, TextBox2.Text); if (ok) { //若查到數據,即可以登陸成功
            Response.Cookies["user"].Value = TextBox1.Text; if (CheckBox1.Checked) { //給cookies設置保存時間
                Response.Cookies["user"].Expires = DateTime.Now.AddDays(7); } Response.Redirect("Main.aspx"); }

主界面Main后台代碼:

 //判斷,cookies是否為空,不為空,根據cookies傳的值查詢
        if (Request.Cookies["user"] != null)
        {
            Users u = new UsersDA().Select(Request.Cookies["user"].Value);

            Labdl.Text = u.NickName;
            Literal1.Text = ",歡迎你!";
        }
        //為空,跳轉登錄頁面
        else
        {
            Response.Redirect("Login.aspx");
        }


有登陸就有退出登錄:

Main主界面退出登錄前台代碼:

<asp:Button ID="Btntc" runat="server" Text="退出登陸" />

后台代碼(清除cookies):

void Btntc_Click(object sender, EventArgs e)
    {
        //1清除cookies
        Response.Cookies["user"].Expires = DateTime.Now.AddDays(-5);
        //2刷新頁面/跳到登陸頁面
        Response.Redirect("Login.aspx");
    }

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM