Поделиться через


FormsAuthenticationTicket Класс

Определение

Предоставляет доступ к свойствам и значениям билета, используемого с проверкой подлинности форм для идентификации пользователей. Этот класс не может быть унаследован.

public ref class FormsAuthenticationTicket sealed
[System.Serializable]
public sealed class FormsAuthenticationTicket
[<System.Serializable>]
type FormsAuthenticationTicket = class
Public NotInheritable Class FormsAuthenticationTicket
Наследование
FormsAuthenticationTicket
Атрибуты

Примеры

Следующий пример кода сохраняет результат Encrypt метода в файле cookie с помощью FormsCookieName пользователя и перенаправляет пользователя на URL-адрес, возвращенный методом GetRedirectUrl .

Это важно

В этом примере содержится текстовое поле, которое принимает входные данные пользователя, которое является потенциальной угрозой безопасности. По умолчанию ASP.NET веб-страницы проверяют, что входные данные пользователя не включают скрипт или ЭЛЕМЕНТЫ HTML. Дополнительные сведения см. в разделе "Обзор эксплойтов скриптов".

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

Комментарии

Класс FormsAuthenticationTicket используется для создания объекта, представляющего билет проверки подлинности, используемый проверкой подлинности форм для идентификации пользователя, прошедшего проверку подлинности. Свойства и значения билета проверки подлинности форм преобразуются в зашифрованную строку, хранящуюся в файле cookie или URL-адресе.

Класс FormsAuthentication предоставляет Encrypt метод для создания строкового значения, которое может храниться в файле cookie или URL-адресе из.FormsAuthenticationTicket Класс FormsAuthentication также предоставляет Decrypt метод для создания FormsAuthenticationTicket объекта из зашифрованного запроса проверки подлинности, полученного из файла cookie проверки подлинности форм или URL-адреса.

Доступ FormsAuthenticationTicket к текущему пользователю, прошедшему проверку подлинности, можно получить с помощью Ticket свойства FormsIdentity класса. Доступ к текущему FormsIdentity объекту можно получить путем приведения Identity свойства текущего User типа FormsIdentity.

Конструкторы

Имя Описание
FormsAuthenticationTicket(Int32, String, DateTime, DateTime, Boolean, String, String)

Инициализирует новый экземпляр FormsAuthenticationTicket класса с именем cookie, версией, путем каталога, датой выдачи, датой окончания срока действия, сохраняемостью и пользовательскими данными.

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

Инициализирует новый экземпляр FormsAuthenticationTicket класса с именем cookie, версией, датой окончания срока действия, датой выдачи, сохраняемостью и данными, определенными пользователем. Путь к файлу cookie имеет значение по умолчанию, установленное в файле конфигурации приложения.

FormsAuthenticationTicket(String, Boolean, Int32)

Инициализирует новый экземпляр класса с помощью имени файла cookie и сведений FormsAuthenticationTicket об истечении срока действия.

Свойства

Имя Описание
CookiePath

Возвращает путь файла cookie для билета проверки подлинности форм.

Expiration

Возвращает локальную дату и время истечения срока действия билета проверки подлинности форм.

Expired

Возвращает значение, указывающее, истек ли срок действия билета проверки подлинности на основе форм.

IsPersistent

Возвращает значение, указывающее, является ли файл cookie, содержащий сведения о запросе проверки подлинности на основе форм.

IssueDate

Возвращает локальную дату и время, в течение которого был выдан билет проверки подлинности форм.

Name

Возвращает имя пользователя, связанное с билетом проверки подлинности форм.

UserData

Возвращает строку для конкретного пользователя, хранящуюся с помощью билета.

Version

Возвращает номер версии билета.

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел