Condividi tramite


FormsIdentity Classe

Definizione

Rappresenta un'identità utente autenticata tramite l'autenticazione basata su form. La classe non può essere ereditata.

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
Ereditarietà
FormsIdentity
Ereditarietà
FormsIdentity
Attributi
Implementazioni

Esempio

Nell'esempio di codice seguente viene generato e FormsAuthenticationTicket quindi utilizzato per creare un'istanza della FormsIdentity classe, in base al fatto che l'utente fornisca il nome utente e la password corretti nel modulo.

<%@ 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>

Commenti

La FormsIdentity classe viene utilizzata da FormsAuthenticationModule quando un utente viene autenticato con l'autenticazione basata su form. Viene creata un'istanza della FormsIdentity classe usando FormsAuthenticationTicket che viene decrittografata dal cookie di autenticazione basata su form o dall'URL. La nuova istanza della FormsIdentity classe viene utilizzata per costruire un nuovo GenericPrincipal oggetto impostato come valore della User proprietà per l'oggetto corrente HttpContext.

Costruttori

FormsIdentity(FormsAuthenticationTicket)

Inizializza una nuova istanza della classe FormsIdentity.

FormsIdentity(FormsIdentity)

Inizializza una nuova istanza della classe FormsIdentity in base all'identità specificata.

Campi

DefaultIssuer

Autorità emittente predefinita; "LOCAL AUTHORITY".

(Ereditato da ClaimsIdentity)
DefaultNameClaimType

Tipo di attestazione del nome predefinito; Name.

(Ereditato da ClaimsIdentity)
DefaultRoleClaimType

Tipo di attestazione del ruolo predefinito; Role.

(Ereditato da ClaimsIdentity)

Proprietà

Actor

Ottiene o imposta l'identità del chiamante a cui sono stati concessi i diritti di delega.

(Ereditato da ClaimsIdentity)
AuthenticationType

Ottiene il tipo di identità autenticato.

BootstrapContext

Ottiene o imposta il token utilizzato per creare questa identità basata sulle attestazioni.

(Ereditato da ClaimsIdentity)
Claims

Ottiene la raccolta di attestazioni associate all'identità.

CustomSerializationData

Contiene i dati aggiuntivi forniti da un tipo derivato. Generalmente impostato durante la chiamata a WriteTo(BinaryWriter, Byte[]).

(Ereditato da ClaimsIdentity)
IsAuthenticated

Ottiene un valore che indica se l'autenticazione è stata effettuata.

Label

Ottiene o imposta l'etichetta per l'identità delle attestazioni.

(Ereditato da ClaimsIdentity)
Name

Ottiene il nome utente dell'identità basata su form.

NameClaimType

Ottiene il tipo di attestazione utilizzato per determinare quali attestazioni forniscono il valore per la proprietà Name di tale identità delle attestazioni.

(Ereditato da ClaimsIdentity)
RoleClaimType

Ottiene il tipo di attestazione che verrà interpretato come ruolo di .NET tra le attestazioni in questa identità delle attestazioni.

(Ereditato da ClaimsIdentity)
Ticket

Ottiene l'oggetto FormsAuthenticationTicket per l'identità utente dell'autenticazione basata su form.

Metodi

AddClaim(Claim)

Aggiunge un'attestazione singola all'identità di queste attestazioni.

(Ereditato da ClaimsIdentity)
AddClaims(IEnumerable<Claim>)

Aggiunge un elenco di attestazioni all'identità di queste attestazioni.

(Ereditato da ClaimsIdentity)
Clone()

Ottiene una copia dell'istanza di FormsIdentity corrente.

CreateClaim(BinaryReader)

Fornisce un punto di estendibilità per i punti derivati per creare un oggetto Claim personalizzato.

(Ereditato da ClaimsIdentity)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
FindAll(Predicate<Claim>)

Recupera tutte le attestazioni che corrispondono al predicato specificato.

(Ereditato da ClaimsIdentity)
FindAll(String)

Recupera tutte le attestazioni con il tipo di attestazione specificato.

(Ereditato da ClaimsIdentity)
FindFirst(Predicate<Claim>)

Recupera la prima attestazione che corrisponde al predicato specificato.

(Ereditato da ClaimsIdentity)
FindFirst(String)

Recupera la prima attestazione con il tipo di attestazione specificato.

(Ereditato da ClaimsIdentity)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetObjectData(SerializationInfo, StreamingContext)

Popola l'oggetto SerializationInfo con i dati necessari per serializzare l'oggetto ClaimsIdentity corrente.

(Ereditato da ClaimsIdentity)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
HasClaim(Predicate<Claim>)

Determina se l'identità delle attestazioni possiede un'attestazione a cui corrisponde il predicato specificato.

(Ereditato da ClaimsIdentity)
HasClaim(String, String)

Determina se l'identità delle attestazioni ha un'attestazione con il tipo e il valore specificati.

(Ereditato da ClaimsIdentity)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
RemoveClaim(Claim)

Tenta di rimuovere un'attestazione dall'identità delle attestazioni.

(Ereditato da ClaimsIdentity)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
TryRemoveClaim(Claim)

Tenta di rimuovere un'attestazione dall'identità delle attestazioni.

(Ereditato da ClaimsIdentity)
WriteTo(BinaryWriter, Byte[])

Esegue la serializzazione usando BinaryWriter.

(Ereditato da ClaimsIdentity)
WriteTo(BinaryWriter)

Esegue la serializzazione usando BinaryWriter.

(Ereditato da ClaimsIdentity)

Si applica a

Vedi anche