Freigeben über


FormsAuthenticationTicket-Klasse

Ermöglicht den Zugriff auf Eigenschaften und Werte des Tickets, das bei der Formularauthentifizierung zum Identifizieren von Benutzern verwendet wird. Diese Klasse kann nicht geerbt werden.

Namespace: System.Web.Security
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
<SerializableAttribute> _
Public NotInheritable Class FormsAuthenticationTicket
'Usage
Dim instance As FormsAuthenticationTicket
[SerializableAttribute] 
public sealed class FormsAuthenticationTicket
[SerializableAttribute] 
public ref class FormsAuthenticationTicket sealed
/** @attribute SerializableAttribute() */ 
public final class FormsAuthenticationTicket
SerializableAttribute 
public final class FormsAuthenticationTicket

Hinweise

Mithilfe der FormsAuthenticationTicket-Klasse wird ein Objekt erstellt, das das von der Formularauthentifizierung zum Identifizieren eines authentifizierten Benutzers verwendete Authentifizierungsticket darstellt. Die Eigenschaften und Werte eines Formularauthentifizierungstickets werden in und aus einer verschlüsselten Zeichenfolge konvertiert, die in einem Cookie oder im URL gespeichert ist.

Die FormsAuthentication-Klasse stellt eine Encrypt-Methode zum Erstellen eines Zeichenfolgenwerts bereit, der in einem Cookie oder im URL von FormsAuthenticationTicket gespeichert werden kann. Die FormsAuthentication-Klasse stellt zudem eine Decrypt-Methode zum Erstellen eines FormsAuthenticationTicket-Objekts aus dem verschlüsselten Authentifizierungsticket bereit, das aus dem Formularauthentifizierungcookie oder dem URL abgerufen wird.

Auf das FormsAuthenticationTicket für den aktuellen authentifizierten Benutzer kann mit der Ticket-Eigenschaft der FormsIdentity-Klasse zugegriffen werden. Sie können auf das aktuelle FormsIdentity-Objekt zugreifen, indem Sie die Identity-Eigenschaft des aktuellen User in den Typ FormsIdentity umwandeln.

Beispiel

Im folgenden Codebeispiel wird das Ergebnis der Encrypt-Methode mit FormsCookieName in einem Cookie gespeichert, und der Benutzer wird an den von der GetRedirectUrl-Methode zurückgegebenen URL umgeleitet.

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<script runat="server">

  Private Sub Login_Click(sender As Object, e As EventArgs)
  
    ' Create a custom FormsAuthenticationTicket containing
    ' application specific data for the user.

    Dim username As String      = UserNameTextBox.Text
    Dim password As String      = UserPassTextBox.Text
    Dim isPersistent As Boolean = PersistCheckBox.Checked

    If Membership.ValidateUser(username, password) Then
    
      Dim userData As String = "ApplicationSpecific data for this user."

      Dim ticket As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, _
        username, _
        DateTime.Now, _
        DateTime.Now.AddMinutes(30), _
        isPersistent, _
        userData, _
        FormsAuthentication.FormsCookiePath)

      ' Encrypt the ticket.
      Dim encTicket As String = FormsAuthentication.Encrypt(ticket)

      ' Create the cookie.
      Response.Cookies.Add(New HttpCookie(FormsAuthentication.FormsCookieName, encTicket))

      ' Redirect back to original URL.
      Response.Redirect(FormsAuthentication.GetRedirectUrl(username, isPersistent))
    Else    
      Msg.Text = "Login failed. Please check your user name and password and try again."
    End If
  End Sub

</script>
<html>
<head>
    <title>Forms Authentication Login</title>
</head>
<body>
    <form runat="server">
        <span style="BACKGROUND: #80ff80"> 
          <h3>Login Page</h3>
        </span> 
        <asp:Label id="Msg" ForeColor="maroon" runat="server" /><P>
        <table border=0>
            <tbody>
                <tr>
                    <td>Username:</td>
                    <td><asp:TextBox id="UserNameTextBox" type="text" runat="server" /></td>
                    <td>
                      <asp:RequiredFieldValidator id="RequiredFieldValidator1" 
                                                  runat="server" ErrorMessage="*" 
                                                  Display="Static" 
                                                  ControlToValidate="UserNameTextBox" />
                    </td>
                </tr>
                <tr>
                    <td>Password:</td>
                    <td><asp:TextBox id="UserPassTextBox" TextMode="Password" runat="server" /></td>
                    <td>
                      <asp:RequiredFieldValidator id="RequiredFieldValidator2" 
                                                  runat="server" ErrorMessage="*" 
                                                  Display="Static" 
                                                  ControlToValidate="UserPassTextBox" />
                    </td>
                </tr>
                <tr>
                    <td>Check here if this is <u>not</u><br>a public computer:</td>
                    <td><asp:CheckBox id="PersistCheckBox" runat="server" autopostback="true" /></td>
                </tr>
            </tbody>
        </table>

        <input type="submit" value="Login" runat="server" onserverclick="Login_Click" />
    </form>
</body>
</html>
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<script runat="server">

  private void Login_Click(Object sender, EventArgs e)
  {
    // Create a custom FormsAuthenticationTicket containing
    // application specific data for the user.

    string username     = UserNameTextBox.Text;
    string password     = UserPassTextBox.Text;
    bool   isPersistent = PersistCheckBox.Checked;

    if (Membership.ValidateUser(username, password))
    {
      string userData = "ApplicationSpecific data for this user.";

      FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
        username,
        DateTime.Now,
        DateTime.Now.AddMinutes(30),
        isPersistent,
        userData,
        FormsAuthentication.FormsCookiePath);

      // Encrypt the ticket.
      string encTicket = FormsAuthentication.Encrypt(ticket);

      // Create the cookie.
      Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));

      // Redirect back to original URL.
      Response.Redirect(FormsAuthentication.GetRedirectUrl(username, isPersistent));
    }
    else
    {
      Msg.Text = "Login failed. Please check your user name and password and try again.";
    }
  }

</script>
<html>
<head>
    <title>Forms Authentication Login</title>
</head>
<body>
    <form runat="server">
        <span style="BACKGROUND: #80ff80"> 
          <h3>Login Page</h3>
        </span> 
        <asp:Label id="Msg" ForeColor="maroon" runat="server" /><P>
        <table border=0>
            <tbody>
                <tr>
                    <td>Username:</td>
                    <td><asp:TextBox id="UserNameTextBox" type="text" runat="server" /></td>
                    <td>
                      <asp:RequiredFieldValidator id="RequiredFieldValidator1" 
                                                  runat="server" ErrorMessage="*" 
                                                  Display="Static" 
                                                  ControlToValidate="UserNameTextBox" />
                    </td>
                </tr>
                <tr>
                    <td>Password:</td>
                    <td><asp:TextBox id="UserPassTextBox" TextMode="Password" runat="server" /></td>
                    <td>
                      <asp:RequiredFieldValidator id="RequiredFieldValidator2" 
                                                  runat="server" ErrorMessage="*" 
                                                  Display="Static" 
                                                  ControlToValidate="UserPassTextBox" />
                    </td>
                </tr>
                <tr>
                    <td>Check here if this is <u>not</u><br>a public computer:</td>
                    <td><asp:CheckBox id="PersistCheckBox" runat="server" autopostback="true" /></td>
                </tr>
            </tbody>
        </table>

        <input type="submit" value="Login" runat="server" onserverclick="Login_Click" />
    </form>
</body>
</html>

Vererbungshierarchie

System.Object
  System.Web.Security.FormsAuthenticationTicket

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

FormsAuthenticationTicket-Member
System.Web.Security-Namespace

Weitere Ressourcen

Formularauthentifizierungsanbieter