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


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 проверки подлинности forms-authentication или URL-адреса.

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

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

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

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

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

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

FormsAuthenticationTicket(String, Boolean, Int32)

Выполняет инициализацию нового экземпляра класса FormsAuthenticationTicket, используя имя файла Cookie и сведения о сроке действия.

Свойства

CookiePath

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

Expiration

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

Expired

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

IsPersistent

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

IssueDate

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

Name

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

UserData

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

Version

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

Методы

Equals(Object)

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

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

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

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

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

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

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

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

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

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

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

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