www.baike369.com
百科369 > ASP.NET教程 > 使用ASP.NET的CookieParameter对象

使用ASP.NET的CookieParameter对象


使用ASP.NET的CookieParameter对象

CookieParameter对象表示浏览器端的cookie。CookieParameter对象除具备父类Parameter的所有属性外,还具备下面的属性:

  • CookieName:浏览器cookie的名称。

实例

在Vote.aspx网页中包含一个投票表单,可以使用该表单给自己喜欢的颜色投票。这时,cookie用于标识所有参与调查的用户,以防止一个用户多次投票。程序代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Vote.aspx.cs" Inherits="Vote" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    void Page_Load()
    {
        if (Request.Cookies["VoterId"] == null)
        {
            string identifier = Guid.NewGuid().ToString();
            HttpCookie voteCookie = new HttpCookie("VoterId", identifier);
            voteCookie.Expires = DateTime.MaxValue;
            Response.AppendCookie(voteCookie);
        }
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>使用ASP.NET的CookieParameter对象-www.baike369.com</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    <asp:FormView
        id="frmVote"
        DataSourceID="srcVote"
        DefaultMode="Insert"
        Runat="server">
        <InsertItemTemplate>
        <asp:Label
            id="lblFavoriteColor"
            AssociatedControlID="rdlFavoriteColor"
            Runat="server">
        </asp:Label>
        <asp:RadioButtonList
            id="rdlFavoriteColor"
            SelectedValue='<%#Bind("Color")%>'
            Runat="server">
            <asp:ListItem Value="Red" Text="红色" Selected="True" />
            <asp:ListItem Value="Blue" Text="蓝色" />
            <asp:ListItem Value="Green" Text="绿色" />
        </asp:RadioButtonList>

        <br />

        <asp:Button
            id="btnSubmit"
            Text="提交"
            CommandName="Insert"
            Runat="server" />
        </InsertItemTemplate>
    </asp:FormView>

    <hr />

    <asp:GridView
        id="grdVote"
        DataSourceID="srcVote"
        Runat="server">
    </asp:GridView>

    <asp:SqlDataSource
        id="srcVote"
        SelectCommand="SELECT * FROM Vote ORDER BY Id DESC"
        InsertCommand="INSERT Vote (VoterId,Color) VALUES (@VoterId,@Color)"
        ConnectionString="<%$ ConnectionStrings:Vote %>"
        Runat="server">
        <InsertParameters>
            <asp:CookieParameter Name="VoterId" CookieName="VoterId" />
        </InsertParameters>
    </asp:SqlDataSource>

    </div>
    </form>
</body>
</html>

执行结果如下:

使用ASP.NET的CookieParameter对象的操作效果

在Vote.aspx页面中,cookie在Page_Load()方法中被添加到客户端浏览器中,并用唯一标识符(GUID)来区别不同的用户。

Copyright© 2011-2016 www.baike369.com All Rights Reserved