Domanda

Sto provando a usare Form.signout ma a volte non disconnette l'utente e può ancora navigare attraverso il sito Web.

Come posso risolvere questo? Ho anche configurato l'autenticazione dei moduli web.config, ma non funziona ancora.

Uso FormsAuthentication per autenticare un utente che passa il login.

Grazie !!

È stato utile?

Soluzione

Non so quale sia la causa, ma alcune cose che potresti considerare / provare

  • sono effettivamente in grado di visitare ancora le pagine generate dal server o stanno solo tornando alle versioni memorizzate nella cache locale? Cosa succede quando causano un postback con codice per verificare se sono autenticati che funziona o fallisce? Penso che il significato successivo sia stato disconnesso, ma visualizzando le versioni memorizzate nella cache della pagina di accesso, nel qual caso si desidera istruire il client a non memorizzare nella cache le pagine utilizzando per esempio:

    Response.Cache.SetExpires (DateTime.UtcNow.AddMinutes (-1)); Response.Cache.SetCacheability (HttpCacheability.NoCache); Response.Cache.SetNoStore ();

  • Puoi provare a impostare manualmente la scadenza del cookie ma questo è un hack

    FormsAuthentication.SignOut (); Context.Response.Cookies.Item (FormsAuthentication.FormsCookieName) .Expires = Date.Now; Response.Redirect (" ~ / Somewhere.aspx ");

Altri suggerimenti

L'utente ha il dominio (o un dominio principale) nei propri siti attendibili o intranet? Di recente ho riscontrato alcuni problemi in cui un utente è autenticato, ma anonimo in circostanze in cui ciò è vero. Nel mio caso potrebbe anche essere che un sito padre sia stato configurato contemporaneamente per consentire l'autenticazione integrata di Windows. L'ho rimosso da quando l'ho rimosso, ma non sembra aiutare il problema. Non ho ancora riavviato IIS per vedere se questo avrebbe avuto un effetto. Ho fatto ricorso alla verifica sia dell'utente autenticato che non anonimo per garantire che le parti appropriate della vista siano rese. Questo è in realtà più accurato anche se il mio codice di accesso dovrebbe impedire di avere un accesso anonimo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top