FormsAuthenticationTicket 构造函数

定义

初始化 FormsAuthenticationTicket 类的新实例。

重载

FormsAuthenticationTicket(String, Boolean, Int32)

使用 cookie 名和过期信息初始化 FormsAuthenticationTicket 类的新实例。

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

使用 Cookie 名、版本、过期日期、发布日期、持久性以及用户特定的数据初始化 FormsAuthenticationTicket 类的新实例。 Cookie 路径设置为在应用程序的配置文件中建立的默认值。

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

使用 cookie 名、版本、目录路径、发布日期、过期日期、持久性以及用户定义的数据初始化 FormsAuthenticationTicket 类的新实例。

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

如果票证将存储在持久性 Cookie 中(跨浏览器会话保存),则为 true;否则为 false。 如果该票证存储在 URL 中,将忽略此值。

timeout
Int32

身份验证票证的有效时间(以分钟为单位)。

注解

FormsAuthenticationTicket此构造函数创建的 对象的值设置为 CookiePath 属性的值FormsCookiePathVersion值 2、IssueDate当前本地日期和时间的值、UserData空字符串 (“”) 的值,以及Expiration设置为当前本地日期和时间的值以及 参数的值timeout

另请参阅

适用于

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

使用 Cookie 名、版本、过期日期、发布日期、持久性以及用户特定的数据初始化 FormsAuthenticationTicket 类的新实例。 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

如果票证将存储在持久性 Cookie 中(跨浏览器会话保存),则为 true;否则为 false。 如果该票证存储在 URL 中,将忽略此值。

userData
String

存储在票证中的用户特定的数据。

注解

FormsAuthenticationTicket 构造函数创建的 对象的值将 CookiePath 设置为 的值 FormsCookiePath

注意

userData 参数不能为 null

另请参阅

适用于

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

使用 cookie 名、版本、目录路径、发布日期、过期日期、持久性以及用户定义的数据初始化 FormsAuthenticationTicket 类的新实例。

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

如果票证将存储在持久性 Cookie 中(跨浏览器会话保存),则为 true;否则为 false。 如果该票证存储在 URL 中,将忽略此值。

userData
String

存储在票证中的用户特定的数据。

cookiePath
String

票证存储在 Cookie 中时的路径。

示例

下面的代码示例使用 FormsCookieName 属性将 方法的结果Encrypt存储在 Cookie 中,并将用户重定向到从 方法返回的 GetRedirectUrl URL。

重要

此示例包含一个接受用户输入的文本框,这是一个潜在的安全威胁。 默认情况下,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

另请参阅

适用于