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) |