FormsAuthentication.SignOut Metod

Definition

Tar bort formulärautentiseringsbiljetten från webbläsaren.

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

Exempel

Följande kodexempel rensar cookien för formulärautentisering med hjälp av SignOut metoden och omdirigerar användaren till inloggningssidan med hjälp av RedirectToLoginPage metoden.

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

Kommentarer

Metoden SignOut tar bort information om formulärautentiseringsbiljetten från cookien eller URL:en om CookiesSupported den är false. Du kan använda SignOut metoden tillsammans med RedirectToLoginPage metoden för att logga ut en användare och tillåta att en annan användare loggar in.

Om du endast kör i cookielöst läge, eller om du stöder både autentiserade och anonyma användare, bör du uttryckligen styra omdirigeringen till inloggningssidan om du behöver särskild affärslogik för att köras som ett resultat av att du tar bort den anonyma identifieraren.

SignOut När metoden anropas görs en omdirigering till programmets inloggningssida genom att anropa Redirect metoden med parametern endResponse inställd på false. Omdirigeringen sker inte förrän den aktuella sidan har körts klart, så ytterligare kod kan köras. Om koden inte innehåller en explicit omdirigering till en annan sida omdirigeras användaren till inloggningssidan som konfigurerats i programmets konfigurationsfil.

SignOut Att anropa metoden tar bara bort cookien för formulärautentisering. Webbservern lagrar inte giltiga och utgångna autentiseringsbiljetter för senare jämförelse. Detta gör din webbplats sårbar för en reprisattack om en obehörig användare får en giltig formulärautentiseringscookie. För att förbättra säkerheten när du använder en cookie för formulärautentisering bör du göra följande:

  • Använd absolut förfallotid för formulärautentiseringscookies genom att ange SlidingExpiration egenskapen till false. Detta begränsar det fönster där en kapad cookie kan spelas upp igen.

  • Utfärda och acceptera endast autentiseringscookies via Secure Sockets Layer (SSL) genom att ange RequireSSL egenskapen till och genom att true köra hela webbplatsen under SSL. Om du anger egenskapen RequireSSL till true ser du till att ASP.NET aldrig skickar en autentiseringscookie till webbläsaren via en icke-SSL-anslutning. Klienten kanske dock inte följer den säkra inställningen för cookien. Det innebär att klienten kan skicka formulärautentiseringscookien via en icke-SSL-anslutning, vilket gör den sårbar för kapning. Du kan förhindra att en klient skickar formulärautentiseringscookien i klartext genom att köra hela webbplatsen under SSL.

  • Använd beständig lagring på servern för att registrera när en användare loggar ut från webbplatsen och använd sedan en programhändelse, till exempel PostAuthenticateRequest händelse, för att avgöra om den aktuella användaren autentiserades med formulärautentisering. Om användaren autentiserades med formulärautentisering, och om informationen i beständiga lagring anger att användaren är utloggad, rensar du omedelbart autentiseringscookien och omdirigerar webbläsaren tillbaka till inloggningssidan. Efter en lyckad inloggning uppdaterar du lagringen så att den återspeglar att användaren är inloggad. När du använder den här metoden måste programmet spåra användarens loggade status och tvinga inaktiva användare att logga ut.

Gäller för

Se även