程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Webform(六)——登錄狀態保持(Cookies內置對象),webformcookies

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

編輯:關於.NET

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


      用戶用浏覽器訪問一個網站,由於采用的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");
    }

 

 

 

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved