Export (0) Print
Expand All

FormsIdentity Class

Represents a user identity authenticated using forms authentication. This class cannot be inherited.

Namespace:  System.Web.Security
Assembly:  System.Web (in System.Web.dll)

[SerializableAttribute]
[ComVisibleAttribute(false)]
public class FormsIdentity : ClaimsIdentity

The FormsIdentity type exposes the following members.

  NameDescription
Public methodFormsIdentity(FormsAuthenticationTicket)Initializes a new instance of the FormsIdentity class.
Protected methodFormsIdentity(FormsIdentity)Initializes a new instance of the FormsIdentity class based on the specified identity.
Top

  NameDescription
Public propertyActorGets or sets the identity of the calling party that was granted delegation rights. (Inherited from ClaimsIdentity.)
Public propertyAuthenticationTypeGets the type of authenticated identity. (Overrides ClaimsIdentity.AuthenticationType.)
Public propertyBootstrapContextGets or sets the token that was used to create this claims identity. (Inherited from ClaimsIdentity.)
Public propertyClaimsGets the collection of claims that are associated with this identity. (Overrides ClaimsIdentity.Claims.)
Public propertyIsAuthenticatedGets a value that indicates whether authentication took place. (Overrides ClaimsIdentity.IsAuthenticated.)
Public propertyLabelGets or sets the label for this claims identity. (Inherited from ClaimsIdentity.)
Public propertyNameGets the user name of the forms identity. (Overrides ClaimsIdentity.Name.)
Public propertyNameClaimTypeGets the claim type that is used to determine which claims provide the value for the Name property of this claims identity. (Inherited from ClaimsIdentity.)
Public propertyRoleClaimTypeGets the claim type that will be interpreted as a .NET Framework role among the claims in this claims identity. (Inherited from ClaimsIdentity.)
Public propertyTicketGets the FormsAuthenticationTicket for the forms-authentication user identity.
Top

  NameDescription
Public methodAddClaimAdds a single claim to this claims identity. (Inherited from ClaimsIdentity.)
Public methodAddClaimsAdds a list of claims to this claims identity. (Inherited from ClaimsIdentity.)
Public methodCloneGets a copy of the current FormsIdentity instance. (Overrides ClaimsIdentity.Clone().)
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodFindAll(Predicate<Claim>)Retrieves all of the claims that are matched by the specified predicate. (Inherited from ClaimsIdentity.)
Public methodFindAll(String)Retrieves all of the claims that have the specified claim type. (Inherited from ClaimsIdentity.)
Public methodFindFirst(Predicate<Claim>)Retrieves the first claim that is matched by the specified predicate. (Inherited from ClaimsIdentity.)
Public methodFindFirst(String)Retrieves the first claim with the specified claim type. (Inherited from ClaimsIdentity.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Protected methodGetObjectDataPopulates the SerializationInfo with data needed to serialize the current ClaimsIdentity object. (Inherited from ClaimsIdentity.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodHasClaim(Predicate<Claim>)Determines whether this claims identity has a claim that is matched by the specified predicate. (Inherited from ClaimsIdentity.)
Public methodHasClaim(String, String)Determines whether this claims identity has a claim with the specified claim type and value. (Inherited from ClaimsIdentity.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodRemoveClaimAttempts to remove a claim from the claims identity. (Inherited from ClaimsIdentity.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Public methodTryRemoveClaimAttempts to remove a claim from the claims identity. (Inherited from ClaimsIdentity.)
Top

The FormsIdentity class is used by the FormsAuthenticationModule when a user is authenticated with forms authentication. An instance of the FormsIdentity class is created using the FormsAuthenticationTicket that is decrypted from the forms-authentication cookie or from the URL. The new instance of the FormsIdentity class is used to construct a new GenericPrincipal object that is set as the value of the User property for the current HttpContext.

The following code example generates a FormsAuthenticationTicket and then uses it to create an instance of the FormsIdentity class, based on whether the user supplies the correct user name and password on the form.

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

.NET Framework

Supported in: 4.5.3, 4, 3.5, 3.0, 2.0, 1.1, 1.0

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft