FormsAuthentication.SignOut Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
trueteljes webhely SSL alatt való futtatásával állítja be és futtatja. A RequireSSL tulajdonságtruebeá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
- ASP.NET Webalkalmazások biztonsága
- Explained: Forms Authentication in ASP.NET 2.0
Bemutató: Tagság használata a ASP.NET 2.0