FormsIdentity Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет удостоверение пользователя, прошедшее проверку подлинности с помощью проверки подлинности форм. Этот класс не может быть унаследован.
public ref class FormsIdentity sealed : System::Security::Principal::IIdentity
public ref class FormsIdentity : System::Security::Principal::IIdentity
public ref class FormsIdentity : System::Security::Claims::ClaimsIdentity
[System.Serializable]
public sealed class FormsIdentity : System.Security.Principal.IIdentity
[System.Serializable]
public class FormsIdentity : System.Security.Principal.IIdentity
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(false)]
public class FormsIdentity : System.Security.Claims.ClaimsIdentity
[<System.Serializable>]
type FormsIdentity = class
interface IIdentity
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(false)>]
type FormsIdentity = class
inherit ClaimsIdentity
Public NotInheritable Class FormsIdentity
Implements IIdentity
Public Class FormsIdentity
Implements IIdentity
Public Class FormsIdentity
Inherits ClaimsIdentity
- Наследование
-
FormsIdentity
- Наследование
- Атрибуты
- Реализации
Примеры
Следующий пример кода создает FormsAuthenticationTicket и использует его для создания экземпляра FormsIdentity класса, исходя из того, предоставляет ли пользователь правильный имя пользователя и пароль в форме.
<%@ Page Language="C#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ Import Namespace="System.Globalization" %>
<%@ Import Namespace="System.Web.Security" %>
<script runat="server">
protected void Login_Click(object sender, EventArgs e)
{
bool isAuthenticated = false;
if (string.Compare(UserNameTextBox.Text, "UserName", true,
CultureInfo.InvariantCulture) == 0)
{
if (string.Compare(PasswordTextBox.Text, "Password", true,
CultureInfo.InvariantCulture) == 0)
{
isAuthenticated = true;
}
}
else isAuthenticated = false;
// Create the formsIdentity for the user.
CreateformsIdentity(UserNameTextBox.Text, isAuthenticated);
}
private void CreateformsIdentity(string userName, bool isAuthenticated)
{
FormsIdentity formsID;
FormsAuthenticationTicket authenticationTicket;
if (isAuthenticated)
{
// If authentication passed, create a ticket
// as a Manager that expires in 15 minutes.
authenticationTicket = new FormsAuthenticationTicket(1, userName,
DateTime.Now, DateTime.Now.AddMinutes(15), false, "Manager");
}
else
{
// If authentication failed, create a ticket
// as a guest that expired 5 minutes ago.
authenticationTicket = new FormsAuthenticationTicket(1, userName,
DateTime.Now, DateTime.Now.Subtract(new TimeSpan(0, 5, 0)),
false, "Guest");
}
// Create form identity from FormsAuthenticationTicket.
formsID = new FormsIdentity(authenticationTicket);
Response.Clear();
Response.Write("Authentication Type: " + formsID.AuthenticationType +
"<BR>");
// Get FormsAuthenticationTicket from the FormIdentity
FormsAuthenticationTicket ticket = formsID.Ticket;
if (ticket.Expired)
{
Response.Write("Authentication failed, so the role is set to " +
ticket.UserData);
}
else
{
Response.Write("Authentication succeeded, so the role is set to " +
ticket.UserData);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>WebForm1</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:Label id="UserIdLabel" runat="server"
style="left: 144px; position: absolute; top: 160px">
User-ID:</asp:Label>
<asp:Label id="PasswordLabel" runat="server"
style="left: 144px; position: absolute; top: 200px">
Password:</asp:Label>
<asp:TextBox id="UserNameTextBox" runat="server"
style="left: 232px; position: absolute; top: 160px;
width:182px; height:22px"></asp:TextBox>
<asp:TextBox id="PasswordTextBox" runat="server"
style="left: 232px; position: absolute; top: 200px;
width:181px; height:22px" TextMode="Password">
</asp:TextBox>
<asp:Button id="Login" runat="server" Text="Login"
style="left: 232px; position: absolute; top: 232px;
width:100px" OnClick="Login_Click"></asp:Button>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ Import Namespace="System.Globalization" %>
<script runat="server">
Private Sub Login_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Login.Click
' For the example, the user name must be "UserName" and the password
' must be "Password" for authentication to succeed.
Dim isAuthenticated As Boolean
If String.Compare(UserNameTextBox.Text, "UserName", True, _
CultureInfo.InvariantCulture) = 0 Then
If String.Compare(PasswordTextBox.Text, "Password", True, _
CultureInfo.InvariantCulture) = 0 Then
isAuthenticated = True
End If
Else
isAuthenticated = False
End If
' Create the FormsIdentity for the user.
CreateFormsIdentity(UserNameTextBox.Text, isAuthenticated)
End Sub
Private Sub CreateFormsIdentity(ByVal userName As String, _
ByVal isAuthenticated As Boolean)
Dim formsId As System.Web.Security.FormsIdentity
Dim authenticationTicket As _
System.Web.Security.FormsAuthenticationTicket
If isAuthenticated Then
' If authentication passed, create a ticket
' as a Manager that expires in 15 minutes.
authenticationTicket = _
New FormsAuthenticationTicket(1, userName, DateTime.Now, _
DateTime.Now.AddMinutes(15), False, "Manager")
Else
' If authentication failed, create a ticket
' as a guest that expired 5 minutes ago.
authenticationTicket = _
New FormsAuthenticationTicket(1, userName, DateTime.Now, _
DateTime.Now.Subtract(New TimeSpan(0, 5, 0)), False, "Guest")
End If
' Create form identity from FormsAuthenticationTicket.
formsId = New FormsIdentity(authenticationTicket)
Response.Clear()
Response.Write("Authenticate Type: " & _
formsId.AuthenticationType & "<BR>")
' Get FormsAuthenticationTicket from the FormIdentity
Dim ticket As FormsAuthenticationTicket = formsId.Ticket()
If ticket.Expired Then
Response.Write("Authentication failed, so the role is set to " & _
ticket.UserData)
Else
Response.Write("Authentication succeeded, so the role is set to " & _
ticket.UserData)
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>WebForm1</title>
</head>
<body>
<form id="Form1" method="post" runat="server">
<asp:Label id="UserIdLabel" runat="server"
style="left: 144px; position: absolute; top: 160px">
User-ID:</asp:Label>
<asp:Label id="PasswordLabel" runat="server"
style="left: 144px; position: absolute; top: 200px">
Password:</asp:Label>
<asp:TextBox id="UserNameTextBox" runat="server"
style="left: 232px; position: absolute; top: 160px;
width:182px; height:22px"></asp:TextBox>
<asp:TextBox id="PasswordTextBox" runat="server"
style="left: 232px; position: absolute; top: 200px;
width:181px; height:22px" TextMode="Password">
</asp:TextBox>
<asp:Button id="Login" runat="server" Text="Login"
style="left: 232px; position: absolute; top: 232px;
width:100px"></asp:Button>
</form>
</body>
</html>
Комментарии
Класс FormsIdentity используется пользователем FormsAuthenticationModule при проверке подлинности пользователей с помощью проверки подлинности форм. Экземпляр FormsIdentity класса создается с помощью FormsAuthenticationTicket расшифровки из файла cookie проверки подлинности форм или URL-адреса. Новый экземпляр FormsIdentity класса используется для создания нового GenericPrincipal объекта, заданного User в качестве значения свойства для текущего HttpContext.
Конструкторы
| Имя | Описание |
|---|---|
| FormsIdentity(FormsAuthenticationTicket) |
Инициализирует новый экземпляр класса FormsIdentity. |
| FormsIdentity(FormsIdentity) |
Инициализирует новый экземпляр класса на основе указанного FormsIdentity удостоверения. |
Поля
| Имя | Описание |
|---|---|
| DefaultIssuer |
Издатель по умолчанию; "LOCAL AUTHORITY". (Унаследовано от ClaimsIdentity) |
| DefaultNameClaimType |
Тип утверждения имени по умолчанию; Name. (Унаследовано от ClaimsIdentity) |
| DefaultRoleClaimType |
Тип утверждения роли по умолчанию; Role. (Унаследовано от ClaimsIdentity) |
Свойства
| Имя | Описание |
|---|---|
| Actor |
Получает или задает удостоверение вызывающей стороны, которая была предоставлена права делегирования. (Унаследовано от ClaimsIdentity) |
| AuthenticationType |
Возвращает тип удостоверения, прошедшего проверку подлинности. |
| BootstrapContext |
Возвращает или задает маркер, используемый для создания этого удостоверения утверждений. (Унаследовано от ClaimsIdentity) |
| Claims |
Возвращает коллекцию утверждений, связанных с этим удостоверением. |
| CustomSerializationData |
Содержит дополнительные данные, предоставляемые производным типом. Обычно устанавливается при вызове WriteTo(BinaryWriter, Byte[]). (Унаследовано от ClaimsIdentity) |
| IsAuthenticated |
Возвращает значение, указывающее, произошла ли проверка подлинности. |
| Label |
Возвращает или задает метку для этого удостоверения утверждений. (Унаследовано от ClaimsIdentity) |
| Name |
Возвращает имя пользователя удостоверения форм. |
| NameClaimType |
Возвращает тип утверждения, используемый для определения того, какие утверждения предоставляют значение для Name свойства этого удостоверения утверждений. (Унаследовано от ClaimsIdentity) |
| RoleClaimType |
Возвращает тип утверждения, который будет интерпретирован как роль .NET среди утверждений в этом идентификаторе утверждений. (Унаследовано от ClaimsIdentity) |
| Ticket |
FormsAuthenticationTicket Возвращает удостоверение пользователя проверки подлинности форм. |
Методы
| Имя | Описание |
|---|---|
| AddClaim(Claim) |
Добавляет одно утверждение к этому удостоверению утверждений. (Унаследовано от ClaimsIdentity) |
| AddClaims(IEnumerable<Claim>) |
Добавляет список утверждений в это удостоверение утверждений. (Унаследовано от ClaimsIdentity) |
| Clone() |
Возвращает копию текущего FormsIdentity экземпляра. |
| CreateClaim(BinaryReader) |
Предоставляет точку расширяемости для производных типов для создания пользовательского Claim. (Унаследовано от ClaimsIdentity) |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| FindAll(Predicate<Claim>) |
Извлекает все утверждения, которые соответствуют указанному предикату. (Унаследовано от ClaimsIdentity) |
| FindAll(String) |
Извлекает все утверждения, имеющие указанный тип утверждения. (Унаследовано от ClaimsIdentity) |
| FindFirst(Predicate<Claim>) |
Извлекает первое утверждение, соответствующее указанному предикату. (Унаследовано от ClaimsIdentity) |
| FindFirst(String) |
Извлекает первое утверждение с указанным типом утверждения. (Унаследовано от ClaimsIdentity) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Заполняет данные, необходимые SerializationInfo для сериализации текущего ClaimsIdentity объекта. (Унаследовано от ClaimsIdentity) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| HasClaim(Predicate<Claim>) |
Определяет, имеет ли это удостоверение утверждений утверждение, соответствующее указанному предикату. (Унаследовано от ClaimsIdentity) |
| HasClaim(String, String) |
Определяет, имеет ли это удостоверение утверждения с указанным типом и значением утверждения. (Унаследовано от ClaimsIdentity) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| RemoveClaim(Claim) |
Пытается удалить утверждение из удостоверения утверждений. (Унаследовано от ClaimsIdentity) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| TryRemoveClaim(Claim) |
Пытается удалить утверждение из удостоверения утверждений. (Унаследовано от ClaimsIdentity) |
| WriteTo(BinaryWriter, Byte[]) |
Сериализуется с помощью .BinaryWriter (Унаследовано от ClaimsIdentity) |
| WriteTo(BinaryWriter) |
Сериализуется с помощью .BinaryWriter (Унаследовано от ClaimsIdentity) |