English 中文(简体)
Here is some code that makes a cookie, can you please show me how to unmake it?
原标题:
  • 时间:2009-11-09 20:41:47
  •  标签:
  • c#
  • cookies
System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Domain = System.Web.HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString().ToLower();
System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Value = tokenID.ToString();
System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Path = "~/";
System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Expires = DateTime.Now.AddDays(7);

Now what code would I do later on in my web app when the user clicks logout to make that cookie get destroyed?

NOTE I TRIED THIS ALREADY WITH AND WITHOUT THE COMMENTED LINES AND IT DOESN T WORK:

    //System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Domain = System.Web.HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString().ToLower();
    //System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Value = tokenID.ToString();
    //System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Path = "~/";
    System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Expires = DateTime.Now.AddDays(-1);
最佳回答

The method FormsAuthentication.SignOut does it something like:

   HttpCookie cookie = new HttpCookie(FormsCookieName, str);
    cookie.HttpOnly = true;
    cookie.Path = _FormsCookiePath;
    cookie.Expires = new DateTime(1999, 10, 12);
    cookie.Secure = _RequireSSL;
    if (_CookieDomain != null)
    {
        cookie.Domain = _CookieDomain;
    }
    current.Response.Cookies.RemoveCookie(FormsCookieName);
    current.Response.Cookies.Add(cookie);

In any case, using something like Fiddler to inspect your http traffic should give you a clue as to what s going on.

问题回答

What I do is set it again, with a blank value and an expiry date in the past:

var context = System.Web.HttpContext.Current; 

context.Response.Cookies["ssocookies"].Domain = context.Request.ServerVariables["SERVER_NAME"].ToString().ToLower();
context.Response.Cookies["ssocookies"].Value = "";
context.Response.Cookies["ssocookies"].Path = "~/";
context.Response.Cookies["ssocookies"].Expires = DateTime.Now.AddDays(-1);

Expire cookies by setting their expiration time in the past.

        System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Domain = System.Web.HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString().ToLower();
        System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Value = tokenID.ToString();
        System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Path = "~/";
        System.Web.HttpContext.Current.Response.Cookies["ssocookies"].Expires = DateTime.Now.AddDays(-7);
System.Web.HttpContext.Current.Response.Cookies.Remove("ssocookies");




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签