1

ユーザーが自分の Web ページにアクセスしたときに Cookie を設定しようとしています。Cookie の値は、ユーザーがいつ Web サイトに戻ってきたかを追跡するためにデータベースに保存する一意の数値です。次のように、global.asax に Cookie を設定します。

void Application_BeginRequest()
{
    string cookievalue = "";
    string a = "";
    try
    {
        a = GetCookie();
        if (!string.IsNullOrEmpty(a))
        {
            cookievalue = a;
        }
        else
        {
            cookievalue = SetCookie();
        }
    }
    catch (Exception ex)
    {

    }
}

BeginRequest() では、Cookie が存在するかどうかのみを確認します。存在する場合は、何もせず、Cookie 内に既にある値を保持します。存在しない場合は、Cookie を設定して値を追加します。

public static string GetCookie()
{
    string cookievalue = "";
    try
    {
        if (HttpContext.Current.Request.Cookies["TestCookie"] != null)
            cookievalue = HttpContext.Current.Response.Cookies["TestCookie"].Value;
    }
    catch (Exception ex)
    {
        //
    }

    return cookievalue;
}
public static string SetCookie()
{
    string cookievalue = "";
    try
    {
        HttpCookie myCookie = new HttpCookie("TestCookie");
        // Set the cookie value.
        myCookie.Value = "1234"; //1234 is my unique number
        myCookie.Expires = DateTime.Now.AddYears(50);
        HttpContext.Current.Response.Cookies.Add(myCookie);
        cookievalue = id;
    }
    catch (Exception ex)
    {
        //
    } 
    return cookievalue;
}

問題は、ページをリロードするたびに、「TestCookie」が新しい値で書き換えられることです。Cookie が ASP.NET にどのように格納されているか、および指示に従って、正常に動作するはずの方法について MSDN を読んでいます。目に見えない何か悪いことをしているに違いない。私は通常のページ内にこのすべてのコードを持っていました.test.aspx.csなど、早期にテストしましたが、同じ結果が得られたので、アプリケーションレベルに移動して違いがあるかどうかを確認しましたが、違いはありませんでした:(.

4

0 に答える 0