WindowsPrincipal Class
Enables code to check the Windows group membership of a Windows user.
Namespace: System.Security.Principal
Assembly: mscorlib (in mscorlib.dll)
The WindowsPrincipal type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | WindowsPrincipal | Initializes a new instance of the WindowsPrincipal class by using the specified WindowsIdentity object. |
| Name | Description | |
|---|---|---|
![]() | Claims | Gets a collection that contains all of the claims from all of the claims identities associated with this claims principal. (Inherited from ClaimsPrincipal.) |
![]() | DeviceClaims | Gets all Windows device claims from this principal. |
![]() | Identities | Gets a collection that contains all of the claims identities associated with this claims principal. (Inherited from ClaimsPrincipal.) |
![]() | Identity | Gets the identity of the current principal. (Overrides ClaimsPrincipal.Identity.) |
![]() | UserClaims | Gets all Windows user claims from this principal. |
| Name | Description | |
|---|---|---|
![]() | AddIdentities | Adds the specified claims identities to this claims principal. (Inherited from ClaimsPrincipal.) |
![]() | AddIdentity | Adds the specified claims identity to this claims principal. (Inherited from ClaimsPrincipal.) |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | FindAll(Predicate<Claim>) | Retrieves all of the claims that are matched by the specified predicate. (Inherited from ClaimsPrincipal.) |
![]() | FindAll(String) | Retrieves all or the claims that have the specified claim type. (Inherited from ClaimsPrincipal.) |
![]() | FindFirst(Predicate<Claim>) | Retrieves the first claim that is matched by the specified predicate. (Inherited from ClaimsPrincipal.) |
![]() | FindFirst(String) | Retrieves the first claim with the specified claim type. (Inherited from ClaimsPrincipal.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetObjectData | Populates the SerializationInfo with data needed to serialize the current ClaimsPrincipal object. (Inherited from ClaimsPrincipal.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | HasClaim(Predicate<Claim>) | Determines whether any of the claims identities associated with this claims principal contains a claim that is matched by the specified predicate. (Inherited from ClaimsPrincipal.) |
![]() | HasClaim(String, String) | Determines whether any of the claims identities associated with this claims principal contains a claim with the specified claim type and value. (Inherited from ClaimsPrincipal.) |
![]() | IsInRole(Int32) | Determines whether the current principal belongs to the Windows user group with the specified relative identifier (RID). |
![]() | IsInRole(SecurityIdentifier) | Determines whether the current principal belongs to the Windows user group with the specified security identifier (SID). |
![]() | IsInRole(String) | Determines whether the current principal belongs to the Windows user group with the specified name. (Overrides ClaimsPrincipal.IsInRole(String).) |
![]() | IsInRole(WindowsBuiltInRole) | Determines whether the current principal belongs to the Windows user group with the specified WindowsBuiltInRole. |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
The WindowsPrincipal class is primarily used to check the role of a Windows user. The WindowsPrincipal.IsInRole method overloads let you check the user role by using different role contexts.
Note |
|---|
The HostProtectionAttribute attribute applied to this type or member has the following Resources property value: SecurityInfrastructure. The HostProtectionAttribute does not affect desktop applications (which are typically started by double-clicking an icon, typing a command, or entering a URL in a browser). For more information, see the HostProtectionAttribute class or SQL Server Programming and Host Protection Attributes. |
| Topic | Location |
|---|---|
| How to: Create a WindowsPrincipal Object | .NET Framework: Security |
| How to: Create a WindowsPrincipal Object | .NET Framework: Security |
The following example demonstrates how to use the IsInRole method overloads. The WindowsBuiltInRole enumeration is used as the source for the relative identifiers (RIDs) that identify the built-in roles. The RIDs are used to determine the roles of the current principal.
using System; using System.Threading; using System.Security.Permissions; using System.Security.Principal; class SecurityPrincipalDemo { public static void DemonstrateWindowsBuiltInRoleEnum() { AppDomain myDomain = Thread.GetDomain(); myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); WindowsPrincipal myPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal; Console.WriteLine("{0} belongs to: ", myPrincipal.Identity.Name.ToString()); Array wbirFields = Enum.GetValues(typeof(WindowsBuiltInRole)); foreach (object roleName in wbirFields) { try { // Cast the role name to a RID represented by the WindowsBuildInRole value. Console.WriteLine("{0}? {1}.", roleName, myPrincipal.IsInRole((WindowsBuiltInRole)roleName)); Console.WriteLine("The RID for this role is: " + ((int)roleName).ToString()); } catch (Exception) { Console.WriteLine("{0}: Could not obtain role for this RID.", roleName); } } // Get the role using the string value of the role. Console.WriteLine("{0}? {1}.", "Administrators", myPrincipal.IsInRole("BUILTIN\\" + "Administrators")); Console.WriteLine("{0}? {1}.", "Users", myPrincipal.IsInRole("BUILTIN\\" + "Users")); // Get the role using the WindowsBuiltInRole enumeration value. Console.WriteLine("{0}? {1}.", WindowsBuiltInRole.Administrator, myPrincipal.IsInRole(WindowsBuiltInRole.Administrator)); // Get the role using the WellKnownSidType. SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null); Console.WriteLine("WellKnownSidType BuiltinAdministratorsSid {0}? {1}.", sid.Value, myPrincipal.IsInRole(sid)); } public static void Main() { DemonstrateWindowsBuiltInRoleEnum(); } }
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.
