登錄時,記住用戶的帳號密碼


登錄樣子,可以參考某一論壇的登錄介面:

 

記住這些信息,可以使用Cookie來實現,更多Cookie應用,可參考http://www.cnblogs.com/insus/articles/2055310.html 或http://www.cnblogs.com/insus/articles/2055531.html

現在我們來模擬一個登錄介面:

View Code
 <table>
            <tr>
                <td style="width: 15%; text-align: right;">
                    User Name
                </td>
                <td>
                    <asp:TextBox ID="TextBoxUserName" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td style="text-align: right;">
                    Password
                </td>
                <td>
                    <asp:TextBox ID="TextBoxPassword" TextMode="Password" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td style="text-align: right;">
                    Remember me
                </td>
                <td>
                    <asp:CheckBox ID="CheckBoxRememberMe" runat="server" />
                </td>
            </tr>
            <tr>
                <td style="text-align: right;">
                </td>
                <td>
                    <asp:Button ID="ButtonLogin" runat="server" Text="Login" OnClick="ButtonLogin_Click" />
                </td>
            </tr>
        </table>


運行時的效果:

 

我們要判斷用戶在點銨鈕的Click事件時,是否有選擇Remember me這個CheckBox,如果選中了,要把這個登錄的信息記錄至Cookie,還要把Cookie的過期時間設置7天之后過期。反之,只把登錄的信息記錄入Cookie之中,不設置Cookie的過期時間。可以參考下面的登錄事件代碼:

View Code
protected void ButtonLogin_Click(object sender, EventArgs e)
    {
        Response.Cookies["Name"].Expires = DateTime.Now.AddDays(-1);
        Response.Cookies["Password"].Expires = DateTime.Now.AddDays(-1);

        if (CheckBoxRememberMe.Checked)
        {
            Response.Cookies["Name"].Expires = DateTime.Now.AddDays(7);
            Response.Cookies["Password"].Expires = DateTime.Now.AddDays(7);
        }

        Response.Cookies["Name"].Value = this.TextBoxUserName.Text.Trim();
        Response.Cookies["Password"].Value = this.TextBoxPassword.Text.Trim ();
    }


接下來,你還得在Page_load中去讀取Cookie.

View Code
 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request.Cookies["Name"] != null && Request.Cookies["Password"] != null)
            {
                this.TextBoxUserName.Text = Request.Cookies["Name"].Value;
                this.TextBoxPassword.Attributes["value"] = Request.Cookies["Password"].Value;
            }
        }
    }


看看操作演示,演示中有三種狀態演示,第一種是沒有點選CheckBox,這樣的話,關閉窗口,下次再打開時,沒有記住登錄的信息。
第二是點選擇了CheckBox,這樣下次再打開窗口,還可以看到帳號與密碼存儲在相應的文本框中,這都是Cookie沒有過期。
第三種,再點一次登錄,沒有點選remember me的CheckBox,這樣系統又移除了Cookie:

 

  


免責聲明!

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



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