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


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
Наследование
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)

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

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