Udostępnij za pośrednictwem


FormsAuthenticationTicket Klasa

Definicja

Zapewnia dostęp do właściwości i wartości biletu używanego z uwierzytelnianiem formularzy do identyfikowania użytkowników. Klasa ta nie może być dziedziczona.

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

Przykłady

Poniższy przykład kodu przechowuje wynik Encrypt metody w pliku cookie przy użyciu elementu FormsCookieName i przekierowuje użytkownika do adresu URL zwróconego GetRedirectUrl z metody .

Ważne

Ten przykład zawiera pole tekstowe, które akceptuje dane wejściowe użytkownika, co jest potencjalnym zagrożeniem bezpieczeństwa. Domyślnie ASP.NET strony sieci Web sprawdzają, czy dane wejściowe użytkownika nie zawierają skryptów ani elementów HTML. Aby uzyskać więcej informacji, zobacz Script Exploits Overview (Omówienie luk w zabezpieczeniach skryptów).

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

Uwagi

Klasa FormsAuthenticationTicket służy do tworzenia obiektu reprezentującego bilet uwierzytelniania używany przez uwierzytelnianie formularzy do identyfikowania uwierzytelnionego użytkownika. Właściwości i wartości biletu uwierzytelniania formularzy są konwertowane na i z zaszyfrowanego ciągu przechowywanego w pliku cookie lub w adresie URL.

Klasa FormsAuthentication udostępnia metodę Encrypt tworzenia wartości ciągu, która może być przechowywana w pliku cookie lub w adresie URL z elementu FormsAuthenticationTicket. Klasa FormsAuthentication udostępnia również metodę DecryptFormsAuthenticationTicket tworzenia obiektu z zaszyfrowanego biletu uwierzytelniania pobranego z pliku cookie uwierzytelniania formularzy lub adresu URL.

Dostęp FormsAuthenticationTicket do elementu dla bieżącego uwierzytelnionego użytkownika można uzyskać przy użyciu Ticket właściwości FormsIdentity klasy . Dostęp do bieżącego FormsIdentity obiektu można uzyskać, odlewanie Identity właściwości bieżącej User jako typu FormsIdentity.

Konstruktory

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

Inicjuje FormsAuthenticationTicket nowe wystąpienie klasy z nazwą pliku cookie, wersją, datą wygaśnięcia, datą wydania, trwałością i danymi specyficznymi dla użytkownika. Ścieżka pliku cookie jest ustawiona na wartość domyślną ustanowioną w pliku konfiguracji aplikacji.

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

Inicjuje FormsAuthenticationTicket nowe wystąpienie klasy z nazwą pliku cookie, wersją, ścieżką katalogu, datą wydania, datą wygaśnięcia, trwałością i danymi zdefiniowanymi przez użytkownika.

FormsAuthenticationTicket(String, Boolean, Int32)

Inicjuje FormsAuthenticationTicket nowe wystąpienie klasy przy użyciu nazwy pliku cookie i informacji o wygaśnięciu.

Właściwości

CookiePath

Pobiera ścieżkę pliku cookie dla biletu uwierzytelniania formularzy.

Expiration

Pobiera lokalną datę i godzinę wygaśnięcia biletu uwierzytelniania formularzy.

Expired

Pobiera wartość wskazującą, czy bilet uwierzytelniania formularzy wygasł.

IsPersistent

Pobiera wartość wskazującą, czy plik cookie zawierający informacje o bilecie uwierzytelniania formularzy jest trwały.

IssueDate

Pobiera lokalną datę i godzinę, o której pierwotnie wydano bilet uwierzytelniania formularzy.

Name

Pobiera nazwę użytkownika skojarzona z biletem uwierzytelniania formularzy.

UserData

Pobiera ciąg specyficzny dla użytkownika przechowywany w bilecie.

Version

Pobiera numer wersji biletu.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy

Zobacz też