Come rimuovere manualmente un cookie impostato da un sottodominio per l'autenticazione asp.net?rimuovere manualmente i cookie di autenticazione asp.net
Il cookie è stato impostato su setter.test.com
;
<authentication mode="Forms">
<forms domain="test.com" loginUrl="Default.aspx" protection="All" path="/" requireSSL="false" timeout="45" name=".ASPXAUTH" slidingExpiration="true" defaultUrl="Default.aspx" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/>
</authentication>
Nella mia applicazione in getter.test.com
, questo è il mio codice per la disconnessione (rimuovendo il cookie):
public ActionResult LogOut()
{
//Manually remove the cookie created by 3rd party authentication
if (Request.Cookies[".ASPXAUTH"] != null)
{
HttpCookie myCookie = new HttpCookie(".ASPXAUTH");
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
}
}
Questo non funziona.
Che cosa succede se non posso difficile codice dominio di primo livello? –
È necessario leggerlo da una configurazione o determinarlo in qualche modo. DEVE averlo, si potrebbe essere in grado di afferrarlo dal cookie della richiesta ... –
Per [RFC 6265] (http://www.rfc-editor.org/rfc/rfc6265.txt) Sezione 4.2.2: " Si noti che gli attributi dei cookie non vengono restituiti, in particolare, il server non può determinare dall'intestazione del cookie da solo quando scadrà un cookie, per cui gli host sono validi, per quali percorsi il cookie è valido, o se il cookie è stato impostato con gli attributi Secure o HttpOnly. " – HABO