ASP.NETでのCookieの使用(実戦チュートリアル)


Web開発を学ぶには、Cookieを使うことが避けられないので、ここで簡単にまとめてみましょう.初心者だけが参照でき、老鳥が通りかかる.個人感覚Cookieの使用とASP.NETのSessionは非常に似ていますが、Cookieはクライアントに保存されていますが、Sessionはサーバ側にあり、両方とも情報を記録することを目的としており、Webサイトへのアクセスの証明書として使用されています.本文は実践操作にすぎず,理論知識には触れない.
思考ガイドを描きたいと思っていましたが、考えてみればいいのですが、ブログに目まぐるしい思考ガイドを貼るのはあまり好きではありません.また、思考ガイドが画像の形で存在しても知識の伝播には不利です.実際に操作する前にCookieについて簡単に話しましょう!
Cookieは実はクライアントに保存されている小さなファイルで、次回サイトにアクセスするときにログインするかどうかなどの情報を保存します.Cookieの最大の利点は、使用が簡単で、伝達、管理、メンテナンスがブラウザで完了することです.欠点は、安全ではなく、サイズに制限があり、ブラウザのセキュリティ設定に制限されていることです.さっきCookieといえば実際には小さなファイルですが、これらのファイルは情報を格納するために使われているに違いありません.では、これらの小さなファイルはどこにありますか.これは、場合によっては、サーバが非持続性Cookieを確立している場合、これらのファイルはブラウザのメモリに保存され、ブラウザを完全に閉じるとCookieは失効します.サーバが永続性Cookieを確立している場合、これらのファイルは:C:あなたのユーザー名DefaultAppDataRoamingMicrosoftWindowsCookiesに保存され、正しいパスをリソースマネージャのアドレスバーに直接コピーして車に戻ってアクセスすればよい.手動で探さないでください.それは見つかりません(隠しファイルが表示されてもCookiesフォルダが見つかりません).これらのCookieファイルはテキストドキュメントの形でここに保存されます.だから安全性は考えられます.プログラムでは、Cookieの有効時間を設定すると、このCookieは持続性Cookieであり、設定しない場合、デフォルトは非持続性Cookieである.
注意しなければならないのは、私たちが1つのページにアクセスするとき、対応するCookieがあれば、ブラウザは自動的にサーバー側に伝達され、サーバー側がクライアントに戻るCookieもブラウザで処理され、私たちの心配は全くありません.Cookieは上書き可能で、同名のCookieを繰り返し書き込むと、前のCookieが上書きされます.
以下のコードは、「サーバ側がクライアントのCookieをどのように読み取るか」、「サーバ側がクライアントに非永続性Cookieを書き込むか」、「サーバ側がクライアントに持続性Cookieを書き込むか」、「持続性Cookieと非永続性Cookieの違い」、「有効な持続性Cookieを強制的に失効させる」を示している.上の説明があって、コードの中の詳しい注釈を加えて、読者が見るとできると信じています.次のコードをvsに直接コピーし、正常に動作します.
WebフロントHTMLコード:
<body>
    <form id="frmUp" runat="server" method="post"> 
        <div>
              \  Cookies:<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
            <asp:Button ID="btnSaveTemp" runat="server" Text="      Cookies" 
                onclick="btnSaveTemp_Click" />
            <asp:Button ID="btnSaveKeep" runat="server" Text="     Cookies" 
                onclick="btnSaveKeep_Click" />
            <asp:Button ID="btnChangeCookie" runat="server" Text="     Cookies  " 
                onclick="btnChangeCookie_Click" />
            <asp:Button ID="btnRead" runat="server" Text="  " onclick="btnRead_Click" />
        </div>
    </form>
</body>

WebバックグラウンドC#コード:
//      
    protected void Page_Load(object sender, EventArgs e)
    {
        //         Cookies,     
        HttpCookie login = Request.Cookies["Login"]; //        Cookies    Login Cookie  
        if(login != null)
        {
            txtUserName.Text = login["userName"]; //  Login    
        }
        else
        {
            txtUserName.Text = "Cookies  ";
        }
    }

    //              Cookie
    protected void btnSaveTemp_Click(object sender, EventArgs e)
    {
        HttpCookie tempCookie = new HttpCookie("Login"); //    HttpCookie  ,Cookies   Login,        ,      Cookie  
        tempCookie["userName"] = "www.kpdown.com"; // Login     userName  ,   
        Response.Cookies.Add(tempCookie); // Cookies        
    }

    //             Cookie
    protected void btnSaveKeep_Click(object sender, EventArgs e)
    {
        HttpCookie keepCookie = new HttpCookie("Login"); //    HttpCookie  ,Cookies   Login,        ,      Cookie  
        keepCookie["userName"] = "www.kpdown.com"; // Login     userName  ,   
        keepCookie.Expires = DateTime.Now.AddDays(2); //  Cookies       
        Response.Cookies.Add(keepCookie); // Cookies        
    }

    //         Cookie  
    protected void btnChangeCookie_Click(object sender, EventArgs e)
    {
        HttpCookie changeCookie = new HttpCookie("Login"); //    Login Cookies  ,  HttpCookie   Cookie    Login,     Login     Login,Cookie    
        changeCookie["userName"] = "www.kpdown.com"; //       ,    ,  Cookie    
        changeCookie.Expires = DateTime.Now.AddDays(-1); //  Cookies             Cookie  
        Response.Cookies.Add(changeCookie);
    }

    //          Cookie
    protected void btnRead_Click(object sender, EventArgs e)
    {
        HttpCookie login = Request.Cookies["Login"]; //        Cookies    Login Cookie  
        if (login != null)
        {
            txtUserName.Text = login["userName"]; //  Login    
        }
        else
        {
            txtUserName.Text = "Cookies  ";
        }
    }

効果図: