2017-10-16 1 views
0

永続的なCookieを設定できません。セッションのみになります。Cで動作しないCookieの有効期限#

私は同じ問題がhereに尋ねられたことを知っていますが、私はすべてのステップを行っても解決できませんでした。
(Fiddlerでテストすることはできませんでした)。

私のコードは次のとおりです。

/// Default.aspx.cs methods : 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (! Cookies.CookieExist("kuki")) 
    { 
     Cookies.CreateCookie("kuki"); 
    } 
    Fill(); 
}  

private void Fill() 
{ 
    string a = Cookies.GetCookieValue("kuki", "key"); 

    if (!a.Contains("data")) 
    { 
     return; 
    } 
    // codes for a 
} 

protected void ButtonAdd_Click(object sender, EventArgs e) 
{ 
    if (TextBox1.Text != string.Empty) 
    { 
     Cookies.InsertCookie("kuki", "key", TextBox1.Text); 
    }   
} 


/// Cookie class methods: 

public static void InsertCookie(string Cookie, string Key, string Data) 
{ 
    HttpCookie Kuki = HttpContext.Current.Request.Cookies[Cookie]; 
    Kuki[Key] = Data; 
    HttpContext.Current.Response.SetCookie(Kuki); 
} 

public static bool CookieExist(string Cookie) 
{ 
    HttpCookie cookie = HttpContext.Current.Request.Cookies[Cookie]; 
    if (cookie == null) 
    { 
     return false; 
    } 
    else 
    { 
     return true; 
    } 
} 

public static void CreateCookie(string Cookie) 
{ 
    HttpCookie cookie = new HttpCookie(Cookie); 
    cookie.Expires = DateTime.Now.AddYears(1); 
    HttpContext.Current.Response.Cookies.Set(cookie); 
} 

public static string GetCookieValue(string CookieName, string CookieKey) 
{ 
    HttpCookie cookie = HttpContext.Current.Request.Cookies[CookieName]; 
    try 
    { 
     if (cookie != null) 
     { 
      return cookie[CookieKey].ToString(); 
     } 
     else 
     { 
      return ""; 
     } 
    } 
    catch (Exception) 
    { 
     return ""; 
    }   
} 

私はChromeを使用しています。
どうすればこの問題を解決できますか?

更新:

ボタンとInsertCookieメソッドが追加されました。代わりに

public static void CreateCookie(string Cookie) 
{ 
    HttpCookie cookie = new HttpCookie(Cookie); 
    cookie.Expires = DateTime.Now.AddYears(1); 
    HttpContext.Current.Response.Cookies.Set(cookie); 
} 

答えて

0

私はエラーが何であるかを知る。 私は自分のクッキーにデータを保存しようとしていました。 しかし、私はクッキーを覚えておく方法のためだけに使うべきです。 申し訳ありません。

1

は、クッキーを追加するために

public static void CreateCookie(string Cookie) 
{ 
    HttpCookie cookie = new HttpCookie(Cookie); 
    cookie.Expires = DateTime.Now.AddYears(1); 
    HttpContext.Current.Response.Cookies.Add(cookie); //<-- Add 
} 

使用Addを試してみてください。すでにレスポンスに書き込まれているクッキーを更新する必要がある場合にのみ、Setを使用してください。

関連する問題