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


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

Определение

Инициализирует новый экземпляр класса FormsAuthenticationTicket.

Перегрузки

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

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

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

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

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

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

FormsAuthenticationTicket(String, Boolean, Int32)

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

public:
 FormsAuthenticationTicket(System::String ^ name, bool isPersistent, int timeout);
public FormsAuthenticationTicket(string name, bool isPersistent, int timeout);
new System.Web.Security.FormsAuthenticationTicket : string * bool * int -> System.Web.Security.FormsAuthenticationTicket
Public Sub New (name As String, isPersistent As Boolean, timeout As Integer)

Параметры

name
String

Имя пользователя, связанное с билетом.

isPersistent
Boolean

true Значение , если билет будет храниться в постоянном файле cookie (сохранен в сеансах браузера); falseв противном случае . Если билет хранится в URL-адресе, это значение игнорируется.

timeout
Int32

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

Комментарии

Объект FormsAuthenticationTicket , созданный этим конструктором, будет иметь CookiePath значение, равное значению FormsCookiePath свойства, Version значению 2, значению текущей локальной даты и времени, IssueDateUserData значению пустой строки (""), а Expiration также значению, заданному текущей локальной датой и временем, а также значением timeout параметра.

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

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

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

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

public:
 FormsAuthenticationTicket(int version, System::String ^ name, DateTime issueDate, DateTime expiration, bool isPersistent, System::String ^ userData);
public FormsAuthenticationTicket(int version, string name, DateTime issueDate, DateTime expiration, bool isPersistent, string userData);
new System.Web.Security.FormsAuthenticationTicket : int * string * DateTime * DateTime * bool * string -> System.Web.Security.FormsAuthenticationTicket
Public Sub New (version As Integer, name As String, issueDate As DateTime, expiration As DateTime, isPersistent As Boolean, userData As String)

Параметры

version
Int32

Номер версии билета.

name
String

Имя пользователя, связанное с билетом.

issueDate
DateTime

Местная дата и время выдачи билета.

expiration
DateTime

Локальная дата и время истечения срока действия билета.

isPersistent
Boolean

true Значение , если билет будет храниться в постоянном файле cookie (сохранен в сеансах браузера); falseв противном случае . Если билет хранится в URL-адресе, это значение игнорируется.

userData
String

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

Комментарии

Объект, FormsAuthenticationTicket созданный этим конструктором CookiePath , будет иметь значение, равное значению FormsCookiePathобъекта.

Замечание

Параметр userData не может быть null.

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

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

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

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

public:
 FormsAuthenticationTicket(int version, System::String ^ name, DateTime issueDate, DateTime expiration, bool isPersistent, System::String ^ userData, System::String ^ cookiePath);
public FormsAuthenticationTicket(int version, string name, DateTime issueDate, DateTime expiration, bool isPersistent, string userData, string cookiePath);
new System.Web.Security.FormsAuthenticationTicket : int * string * DateTime * DateTime * bool * string * string -> System.Web.Security.FormsAuthenticationTicket
Public Sub New (version As Integer, name As String, issueDate As DateTime, expiration As DateTime, isPersistent As Boolean, userData As String, cookiePath As String)

Параметры

version
Int32

Номер версии билета.

name
String

Имя пользователя, связанное с билетом.

issueDate
DateTime

Местная дата и время выдачи билета.

expiration
DateTime

Локальная дата и время истечения срока действия билета.

isPersistent
Boolean

true Значение , если билет будет храниться в постоянном файле cookie (сохранен в сеансах браузера); falseв противном случае . Если билет хранится в URL-адресе, это значение игнорируется.

userData
String

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

cookiePath
String

Путь к билету при хранении в файле cookie.

Примеры

В следующем примере кода сохраняется результат 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>

Комментарии

Замечание

Параметр userData не может быть null.

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

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