Прочитать на английском

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


FormsIdentity Класс

Определение

Представляет удостоверение пользователя, прошедшего проверку подлинности, используя проверку подлинности с помощью форм. Этот класс не наследуется.

C#
[System.Serializable]
public sealed class FormsIdentity : System.Security.Principal.IIdentity
C#
[System.Serializable]
public class FormsIdentity : System.Security.Principal.IIdentity
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(false)]
public class FormsIdentity : System.Security.Claims.ClaimsIdentity
Наследование
FormsIdentity
Наследование
FormsIdentity
Атрибуты
Реализации

Примеры

В следующем примере кода создается FormsAuthenticationTicket , а затем используется для создания экземпляра FormsIdentity класса в зависимости от того, правильно ли пользователь предоставляет имя пользователя и пароль в форме.

ASP.NET (C#)
<%@ 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>

Комментарии

Класс FormsIdentity используется , FormsAuthenticationModule когда пользователь проходит проверку подлинности с помощью форм. Экземпляр FormsIdentity класса создается с помощью FormsAuthenticationTicket , который расшифровывается из файла cookie проверки подлинности на основе форм или ИЗ URL-адреса. Новый экземпляр FormsIdentity класса используется для создания нового GenericPrincipal объекта, который задается в качестве значения User свойства для текущего HttpContextобъекта .

Конструкторы

FormsIdentity(FormsAuthenticationTicket)

Инициализирует новый экземпляр класса FormsIdentity.

FormsIdentity(FormsIdentity)

Инициализирует новый экземпляр класса FormsIdentity на основе указанного удостоверения.

Поля

DefaultIssuer

Издатель по умолчанию; "ЛОКАЛЬНАЯ СИСТЕМА".

(Унаследовано от 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)

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

Продукт Версии
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

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