通过


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

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

timeout
Int32

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

注解

FormsAuthenticationTicket此构造函数创建的对象将具有一个CookiePath值,该值设置为属性的值FormsCookiePathVersion2 的值、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

true 如果票证将存储在持久性 Cookie 中(跨浏览器会话保存);否则,为 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

true 如果票证将存储在持久性 Cookie 中(跨浏览器会话保存);否则,为 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.

另请参阅

适用于