嘗嘗ASP.NET中的小甜餅

來源:互聯網
上載者:User
asp.net Cookie對於使用過ASP的讀者來講並不陌生,但是我們要講的是在ASP.NET中的Cookie。我們知道,Cookie存在於使用者電腦瀏覽器中,我們可以使用Cookie來存放一些很簡單的資料。但是,有一點別說我沒提醒你:記住這不是個好辦法,因為使用者可以在任何時間刪除Cookie資訊,也可以關閉Cookie功能。好了,開場白就這些。

使用ASP.NET我們可以很容易的對Cookie集合進行操作。它和ASP中的Cookie一樣,都是附屬於Request和Response對象的。Listing1和2分別給出了如何讀和寫Cookie的方法。圖1和2則是相應的顯示。
Listing 1這個檔案的功能是寫入cookie
<%@ language="C#" %>
<HTML>
<script language="C#" runat="server">
void WriteClicked(Object Sender, EventArgs e)
{
//建立一個新Cookie,其cookie名來自於NameField.Text
HttpCookie cookie = new HttpCookie(NameField.Text);

//設定Cookie的值
cookie.Value = ValueField.Text;

//設定cookie生命為1 minute,TimeSpan()是一個專門設定時間間隔的類,我們定義了其執行個體tsMinute
DateTime dtNow = DateTime.Now;
TimeSpan tsMinute = new TimeSpan(0, 0, 1, 0);
cookie.Expires = dtNow + tsMinute;

//添加Cookie
Response.Cookies.Add(cookie);

Response.Write("Cookie written. <br><hr>");
}
</script>
<body>
<h3>
Use the button below to write cookies to your browser
</h3>
The cookies will expire in one minute.
<form runat="server" ID="Form1">
Cookie Name
<asp:textbox id="NameField" runat="server" />
<br>
Cookie Value
<asp:textbox id="ValueField" runat="server" />
<br>
<asp:button text="WriteCookie" runat="server" ID="Button1" />
<br>
</form>
<a href="readcookies.aspx">Read the cookies</a>
</body>
</HTML>
圖1
Listing 2 這個檔案是為了讀取剛才寫入的cookie值
<%@ language="C#" %>
<script runat="server">
void ReadClicked(Object Sender, EventArgs e)
{
//取得想要的Cookie名
String strCookieName = NameField.Text;

//取得此Cookie名對應的對象,注意目前的得到的cookie是個對象
HttpCookie cookie = Request.Cookies[strCookieName];

//檢驗Cookie是否已經存在
if (null == cookie) {
Response.Write("Cookie not found. <br><hr>");
}
else {
//顯示Cookie的值
String strCookieValue = cookie.Value.ToString();
Response.Write("The " + strCookieName + " cookie contains: <b>"
+ strCookieValue + "</b><br><hr>");
}
}
</script>
<html>
<body>
Use the button below to read a cookie
<br>
<form runat="server" ID="Form1">
Cookie Name
<asp:textbox id="NameField" runat="server" />
<asp:button text="ReadCookie" runat="server" ID="Button1" />
</form>
<a href="writecookies.aspx">Write Cookies</a>
</body>
</html>

圖2
為了更好的瞭解cookie的讀寫,程式碼分析如下。
在Listing 1中,為了將cookie寫入使用者的瀏覽器,我們調用了HttpCookie對象,並且建立了一個HttpCookie對象的執行個體cookie,寫入cookie時,我們使用了Response.Cookies對象的方法Add(),最後我們設定了此cookie的生命期限為一分鐘。
在Listing 2中,我們嘗試了讀取Cookie的方法。很簡單,就是訪問了Request.Cookies集合。
Cookie只能存放string類型的資料,如果想要存放更為複雜的資料類型,那麼必須先將其轉換為string類型。提示一種辦法可以向Cookie寫入複雜的資料類型,就是將想存放的複雜資料類型轉化為XML串,然後寫入Cookie。另外,我們還可以在一個cookie中儲存多個值,在此就不多說了,留給有興趣的讀者去研究吧。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.