Sdílet prostřednictvím


FormsAuthentication.SignOut Metoda

Definice

Odebere lístek ověřování formulářů z prohlížeče.

public:
 static void SignOut();
public static void SignOut ();
static member SignOut : unit -> unit
Public Shared Sub SignOut ()

Příklady

Následující příklad kódu vymaže soubor cookie ověřování formulářů pomocí SignOut metody a přesměruje uživatele na přihlašovací stránku pomocí RedirectToLoginPage metody .

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

public void LoginLink_OnClick(object sender, EventArgs args)
{
  FormsAuthentication.SignOut();
  FormsAuthentication.RedirectToLoginPage();
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>

<form id="form1" runat="server">
Welcome <b><%=User.Identity.Name%></b>. Not <b><%=User.Identity.Name%></b>? 
Click <asp:LinkButton id="LoginLink" Text="here" 
                      OnClick="LoginLink_OnClick" runat="server" />
to sign in.

<!-- Page Contents -->

</form>



</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Public Sub LoginLink_OnClick(sender As Object, args As EventArgs)
  FormsAuthentication.SignOut()
  FormsAuthentication.RedirectToLoginPage()
End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>

<form id="form1" runat="server">
Welcome <b><%=User.Identity.Name%></b>. Not <b><%=User.Identity.Name%></b>? 
Click <asp:LinkButton id="LoginLink" Text="here" 
                      OnClick="LoginLink_OnClick" runat="server" />
to sign in.

<!-- Page Contents -->

</form>



</body>
</html>

Poznámky

Metoda SignOut odebere informace o lístku ověřování formulářů ze souboru cookie nebo adresy URL, pokud CookiesSupported je false. Pomocí metody můžete SignOut ve spojení s metodou RedirectToLoginPage odhlásit jednoho uživatele a povolit přihlášení jinému uživateli.

Pokud používáte výhradně v režimu bez souborů cookie nebo pokud podporujete ověřené i anonymní uživatele, měli byste přesměrování na přihlašovací stránku explicitně řídit, pokud potřebujete, aby se v důsledku odebrání anonymního identifikátoru spustila speciální obchodní logika.

SignOut Při volání metody se provede přesměrování na přihlašovací stránku aplikace voláním Redirect metody s parametrem endResponse nastaveným na false. Přesměrování neproběhne, dokud se nedokončí spuštění aktuální stránky, takže je možné spustit další kód. Pokud kód neobsahuje explicitní přesměrování na jinou stránku, je uživatel přesměrován na přihlašovací stránku nakonfigurovanou v konfiguračním souboru aplikace.

Volání metody SignOut odebere pouze soubor cookie ověřování formulářů. Webový server neukládá platné a prošlé lístky ověřování pro pozdější porovnání. Díky tomu bude váš web zranitelný vůči útoku replay, pokud uživatel se zlými úmysly získá platný soubor cookie pro ověřování formulářů. Pokud chcete zlepšit zabezpečení při používání souboru cookie pro ověřování pomocí formulářů, měli byste postupovat následovně:

  • Pro soubory cookie ověřování formulářů použijte absolutní vypršení platnosti nastavením SlidingExpiration vlastnosti na false. Tím se omezí okno, ve kterém se může znovu přehrát napadený soubor cookie.

  • Vystavujte a přijímejte ověřovací soubory cookie pouze přes protokol SSL (Secure Sockets Layer), a to nastavením RequireSSL vlastnosti na true a spuštěním celého webu v rámci protokolu SSL. RequireSSL Nastavením vlastnosti na true zajistíte, že ASP.NET nikdy neodešle ověřovací soubor cookie do prohlížeče přes připojení bez SSL. Klient ale nemusí respektovat nastavení zabezpečení souboru cookie. To znamená, že klient může odeslat soubor cookie pro ověřování formulářů přes připojení bez SSL, a tím ho nechat zranitelnou vůči napadení. Spuštěním celého webu pod protokolem SSL můžete zabránit klientovi v odesílání ověřovacího souboru cookie formulářů v nezachycené podobě.

  • Použijte trvalé úložiště na serveru k zaznamenání, kdy se uživatel odhlásí z webu, a pak pomocí události aplikace, jako PostAuthenticateRequest je událost, určit, zda byl aktuální uživatel ověřen pomocí ověřování pomocí formulářů. Pokud byl uživatel ověřen pomocí ověřování pomocí formulářů a informace v trvalém úložišti značí, že je uživatel odhlášený, okamžitě vymažte ověřovací soubor cookie a přesměrujte prohlížeč zpět na přihlašovací stránku. Po úspěšném přihlášení aktualizujte úložiště tak, aby odráželo, že je uživatel přihlášený. Při použití této metody musí aplikace sledovat stav přihlášeného uživatele a musí vynutit, aby se nečinní uživatelé odhlásili.

Platí pro

Viz také