2011-08-16 11 views
8

以下のコード、別のページのtxtusernameの値を読み取る方法、およびログアウト(コードアウト用のコード)をクリックするとクッキーを削除する方法を使用してクッキーを作成しています。私はプログラミングには新しく助けてください。ログアウト時にクッキーを削除する

string cookiestr; 
      HttpCookie ck; 
      tkt = new FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now, 
      DateTime.Now.AddMinutes(30), chkPersistCookie.Checked, "your custom data"); 
      cookiestr = FormsAuthentication.Encrypt(tkt); 

      ck = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr); 
      if (chkPersistCookie.Checked) 
       ck.Expires = tkt.Expiration; 
      ck.Path = FormsAuthentication.FormsCookiePath; 
      Response.Cookies.Add(ck); 
+0

あなたは本当にちょうどそのようなあなたのコード全体を置き換えるべきではありません。それは11分前と同じ質問ではありません –

答えて

12

あなたはクッキーとしてパスワードを保存することはありません。それは非常に大きなセキュリティ上の脅威です。クッキーを削除するには、それを変更して期限切れにするだけです。実際に削除することはできません。つまり、ユーザーのディスクから削除することはできません。このdocumentationをチェックしてください。ここで

はサンプルです:

HttpCookie aCookie; 
    string cookieName; 
    int limit = Request.Cookies.Count; 
    for (int i=0; i<limit; i++) 
    { 
     cookieName = Request.Cookies[i].Name; 
     aCookie = new HttpCookie(cookieName); 
     aCookie.Expires = DateTime.Now.AddDays(-1); // make it expire yesterday 
     Response.Cookies.Add(aCookie); // overwrite it 
    } 
5

あなたが直接クッキーを削除することはできません、あなたは現在の日付より前に期限を設定する必要があります。

if (Request.Cookies["clienDetails"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("clienDetails"); 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    Response.Cookies.Add(myCookie); 
} 

あなたはそれhereについての詳細を読むことができます。

さらに、自分のセキュリティを書くのではなく、asp.net membershipを読むことをお勧めします。より安全で使いやすい。あなたのセキュリティモデルには多くの欠陥があります。パスワードをプレーンテキストでクッキーに保存するのは本当に悪いことです。

EDIT: あなたが今、あなたのコードを変更すると、クッキーを削除するには、この操作を行う必要があります:

if (Request.Cookies[FormsAuthentication.FormsCookieName] != null) 
{ 
    HttpCookie myCookie = new HttpCookie(FormsAuthentication.FormsCookieName); 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    Response.Cookies.Add(myCookie); 
} 
+0

Okありがとう、しかし、私はパスワードと電子メールIDを暗号化せずに保存すると、以下のコードはtxtusername value.theを読むことができました!(Request.Cookies ["Cookiename"]!= null ) { Label8.Text = Request.Cookies ["cookiename"]。値["client_ID"]。ToString(); } – rookie

+0

@Gokul Try User.Identity.Name –

関連する問題