2010-12-30 10 views
1

「ログアウト」ボタンを使用して、ログアウトページ内で次のC#コードを実行しています。 これは、ieとffではうまく動作しますが、chromeではうまく動作しません。問題は、クロムがクッキーを設定しないことです。応答ヘッダーに値がまったく表示されません。私はネット上で同様の問題を抱えるいくつかのレポートを読んだが、適切な解決策は提案されていない。どんな助けでも大歓迎です。あなたの時間をありがとう。このページで実行されるコードは次のとおりです。Chromeクッキーの問題

public class LogOut : ExtendedControlBase 
    { 
     void RemoveCookie(string CookieName) 
     { 
      HttpCookie myCookie = new HttpCookie(CookieName); 
      myCookie.Expires = DateTime.Now.AddDays(-100); 
      Response.Cookies.Add(myCookie); 
     } 
     protected override void OnInit(EventArgs e) 
     { 
      Session.Remove("SiteUserEmail"); 
      Session.Remove("SiteUserName"); 
      Session.Remove("siteUserId"); 
      Session.Remove("siteUserGroupId"); 
      RemoveCookie("u"); 
      Response.StatusCode = 301; 
      Response.AddHeader("Location", "/"); 
      Response.Flush(); 
      Response.End(); 
     } 
    } 
+0

質問:組み込みのメンバーシッププロバイダを使用する必要がありますか? –

答えて

0

これは、過去の有効期限の設定によるものです。 myCookie.Expires = DateTime.Now.AddDays(-100);を削除しようとしましたか?有効期限は今後設定されないため、この値を持たないセッションクッキーとして扱われると私は信じています。

+0

correct.thisはchromeのみの問題です(つまり、それを有効期限のクッキーと見なします)。私はchrome.thanksの代替案をもう一度探しています。 – ioannis

1

いくつかの提案:

はまさに起こっものを見るためにFiddlerのようなものを使用してみてください。私の推測は、実際には 'ログアウト'のリンクが期待どおりにChromeで動作していないということです。

は手動でCookieヘッダーを設定してみてください:

Response.AddHeader("Set-Cookie", "u=; expires=Fri, 31-Dec-1999 23:59:59 GMT"); 

彼らはワイヤーに実際にあるかどうかを確認するためのテストヘッダを設定してみてください:

Response.AddHeader("X-Testing", "Testing"); 

注:を私はそれを試していません。私はAsp.Netで動作する任意のヘッダーを設定すると仮定します。