FormsAuthenticationTicket Klass

Definition

Ger åtkomst till egenskaper och värden för det ärende som används med formulärautentisering för att identifiera användare. Det går inte att ärva den här klassen.

public ref class FormsAuthenticationTicket sealed
[System.Serializable]
public sealed class FormsAuthenticationTicket
[<System.Serializable>]
type FormsAuthenticationTicket = class
Public NotInheritable Class FormsAuthenticationTicket
Arv
FormsAuthenticationTicket
Attribut

Exempel

I följande kodexempel lagras resultatet av metoden i en cookie med hjälp av EncryptFormsCookieName och omdirigerar användaren till den URL som returneras från GetRedirectUrl metoden.

Important

Det här exemplet innehåller en textruta som accepterar användarindata, vilket är ett potentiellt säkerhetshot. Som standard kontrollerar ASP.NET webbsidor att användarindata inte innehåller skript- eller HTML-element. Mer information finns i Översikt över skriptexploateringar.

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

  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 = false;

    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 xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Forms Authentication Login</title>
</head>
<body>
    <form id="form1" runat="server">
        <span style="BACKGROUND: #80ff80; font-weight:bold"> 
            Login Page
        </span> 
        <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
        <table border="0">
            <tbody>
                <tr>
                    <td>Username:</td>
                    <td><asp:TextBox id="UserNameTextBox" 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>
            </tbody>
        </table>
        <input type="submit" value="Login" runat="server" onserverclick="Login_Click" />
    </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">

  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 = False

    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 xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Forms Authentication Login</title>
</head>
<body>
    <form id="form1" runat="server">
        <span style="BACKGROUND:#80ff80; font-weight:bold"> 
          Login Page
        </span> 
        <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
        <table border="0">
            <tbody>
                <tr>
                    <td>Username:</td>
                    <td><asp:TextBox id="UserNameTextBox" 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>
            </tbody>
        </table>
        <input type="submit" value="Login" runat="server" onserverclick="Login_Click" />
    </form>
</body>
</html>

Kommentarer

Klassen FormsAuthenticationTicket används för att skapa ett objekt som representerar autentiseringsbiljetten som används av formulärautentisering för att identifiera en autentiserad användare. Egenskaperna och värdena för ett formulärautentiseringsärende konverteras till och från en krypterad sträng som lagras i en cookie eller i URL:en.

Klassen FormsAuthentication tillhandahåller en Encrypt metod för att skapa ett strängvärde som kan lagras i en cookie eller i URL:en från en FormsAuthenticationTicket. Klassen FormsAuthentication innehåller också en Decrypt metod för att skapa ett FormsAuthenticationTicket objekt från den krypterade autentiseringsbiljetten som hämtats från cookien för formulärautentisering eller URL:en.

För FormsAuthenticationTicket den aktuella autentiserade användaren kan nås med hjälp Ticket av egenskapen för FormsIdentity klassen. Du kan komma åt det aktuella FormsIdentity objektet genom att casta Identity egenskapen för den aktuella User som typ FormsIdentity.

Konstruktorer

Name Description
FormsAuthenticationTicket(Int32, String, DateTime, DateTime, Boolean, String, String)

Initierar en ny instans av FormsAuthenticationTicket klassen med cookienamn, version, katalogsökväg, utfärdandedatum, förfallodatum, beständighet och användardefinierade data.

FormsAuthenticationTicket(Int32, String, DateTime, DateTime, Boolean, String)

Initierar en ny instans av FormsAuthenticationTicket klassen med cookienamn, version, utgångsdatum, utfärdandedatum, beständighet och användarspecifika data. Cookiesökvägen är inställd på det standardvärde som anges i programmets konfigurationsfil.

FormsAuthenticationTicket(String, Boolean, Int32)

Initierar en ny instans av klassen med hjälp av FormsAuthenticationTicket ett cookienamn och förfalloinformation.

Egenskaper

Name Description
CookiePath

Hämtar cookiesökvägen för formulärautentiseringsbiljetten.

Expiration

Hämtar det lokala datum och den tid då formulärautentiseringsbiljetten upphör att gälla.

Expired

Hämtar ett värde som anger om formulärautentiseringsbiljetten har upphört att gälla.

IsPersistent

Hämtar ett värde som anger om cookien som innehåller information om formulärautentiseringsbiljetten är beständig.

IssueDate

Hämtar det lokala datum och den tid då formulärautentiseringsbiljetten ursprungligen utfärdades.

Name

Hämtar användarnamnet som är associerat med formulärautentiseringsbiljetten.

UserData

Hämtar en användarspecifik sträng som lagras med biljetten.

Version

Hämtar versionsnumret för biljetten.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för

Se även