FormsAuthentication.SignOut Metódus

Definíció

Eltávolítja az űrlap-hitelesítési jegyet a böngészőből.

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

Példák

Az alábbi példakód törli az űrlap-hitelesítési cookie-t a SignOut módszerrel, és átirányítja a felhasználót a bejelentkezési oldalra a RedirectToLoginPage metódus használatával.

<%@ 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>

Megjegyzések

A SignOut metódus eltávolítja az űrlaphitelesítési jegy adatait a cookie-ból vagy az URL-címből, ha CookiesSupported igen false. A metódussal együtt használhatja egy SignOutRedirectToLoginPage felhasználó kijelentkeztetésére és egy másik felhasználó bejelentkezésének engedélyezésére.

Ha kizárólag cookie nélküli módban fut, vagy ha a hitelesített és a névtelen felhasználókat is támogatja, akkor explicit módon szabályoznia kell a bejelentkezési lapra való átirányítást, ha a névtelen azonosító eltávolítása miatt speciális üzleti logikát kell végrehajtania.

SignOut A metódus meghívásakor a rendszer átirányítja az alkalmazás bejelentkezési oldalára a Redirect metódus meghívásával a endResponse paramétertfalse. Az átirányítás csak akkor történik meg, ha az aktuális lap végrehajtása befejeződött, így további kód is futtatható. Ha a kód nem tartalmaz explicit átirányítást egy másik lapra, a rendszer átirányítja a felhasználót az alkalmazás konfigurációs fájljában konfigurált bejelentkezési lapra.

A metódus meghívása SignOut csak az űrlap-hitelesítési cookie-t távolítja el. A webkiszolgáló nem tárol érvényes és lejárt hitelesítési jegyeket a későbbi összehasonlításhoz. Ez sebezhetővé teszi a webhelyet egy visszajátszási támadással szemben, ha egy rosszindulatú felhasználó érvényes űrlap-hitelesítési cookie-t szerez be. Az űrlaphitelesítő cookie-k használatakor a biztonság javítása érdekében tegye a következőket:

  • Használjon abszolút lejáratot az űrlaphitelesítő cookie-khoz a SlidingExpiration tulajdonság falsebeállításával. Ez korlátozza azt az ablakot, amelyben egy eltérített cookie visszajátszható.

  • Csak a Secure Sockets Layer (SSL) használatával állít be és fogadjon el hitelesítési cookie-kat úgy, hogy RequireSSL a tulajdonságot a true teljes webhely SSL alatt való futtatásával állítja be és futtatja. A RequireSSL tulajdonság true beállításával biztosítható, hogy ASP.NET soha ne küldjön hitelesítési cookie-t a böngészőnek nem SSL-kapcsolaton keresztül; előfordulhat azonban, hogy az ügyfél nem tartja tiszteletben a cookie biztonságos beállítását. Ez azt jelenti, hogy az ügyfél elküldheti az űrlap-hitelesítési cookie-t egy nem SSL-kapcsolaton keresztül, így sebezhetővé téve az eltérítést. Megakadályozhatja, hogy az ügyfél az űrlaphitelesítési cookie-t tiszta állapotban küldje el, ha a teljes webhelyet SSL-ben futtatja.

  • Használjon állandó tárolót a kiszolgálón, hogy rögzítse, amikor egy felhasználó kijelentkezik a webhelyről, majd egy alkalmazásesemény, például PostAuthenticateRequest esemény használatával állapítsa meg, hogy az aktuális felhasználó hitelesítése űrlaphitelesítéssel történt-e. Ha a felhasználó hitelesítése űrlaphitelesítéssel történt, és az állandó tárolóban lévő adatok azt jelzik, hogy a felhasználó ki van jelentkezve, azonnal törölje a hitelesítési cookie-t, és irányítsa vissza a böngészőt a bejelentkezési lapra. A sikeres bejelentkezés után frissítse a tárterületet, hogy tükrözze a felhasználó bejelentkezését. Ha ezt a módszert használja, az alkalmazásnak nyomon kell követnie a felhasználó bejelentkezett állapotát, és ki kell kényszerítenie a tétlen felhasználókat a kijelentkezésre.

A következőre érvényes:

Lásd még