WindowsPrincipal Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee schakelt u code in om het Windows groepslidmaatschap van een Windows gebruiker te controleren.
public ref class WindowsPrincipal : System::Security::Principal::IPrincipal
public ref class WindowsPrincipal : System::Security::Claims::ClaimsPrincipal
[System.Serializable]
public class WindowsPrincipal : System.Security.Principal.IPrincipal
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class WindowsPrincipal : System.Security.Principal.IPrincipal
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class WindowsPrincipal : System.Security.Claims.ClaimsPrincipal
[<System.Serializable>]
type WindowsPrincipal = class
interface IPrincipal
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type WindowsPrincipal = class
interface IPrincipal
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type WindowsPrincipal = class
inherit ClaimsPrincipal
Public Class WindowsPrincipal
Implements IPrincipal
Public Class WindowsPrincipal
Inherits ClaimsPrincipal
- Overname
-
WindowsPrincipal
- Overname
- Kenmerken
- Implementeringen
Voorbeelden
In het volgende voorbeeld ziet u hoe u de overbelasting van de IsInRole methode gebruikt. De WindowsBuiltInRole opsomming wordt gebruikt als de bron voor de relatieve id's (RID's) die de ingebouwde rollen identificeren. De RID's worden gebruikt om de rollen van de huidige principal te bepalen.
public:
static void DemonstrateWindowsBuiltInRoleEnum()
{
AppDomain^ myDomain = Thread::GetDomain();
myDomain->SetPrincipalPolicy( PrincipalPolicy::WindowsPrincipal );
WindowsPrincipal^ myPrincipal = dynamic_cast<WindowsPrincipal^>(Thread::CurrentPrincipal);
Console::WriteLine( "{0} belongs to: ", myPrincipal->Identity->Name );
Array^ wbirFields = Enum::GetValues( WindowsBuiltInRole::typeid );
for each ( Object^ roleName in wbirFields )
{
try
{
Console::WriteLine( "{0}? {1}.", roleName,
myPrincipal->IsInRole( *dynamic_cast<WindowsBuiltInRole^>(roleName) ) );
}
catch ( Exception^ )
{
Console::WriteLine( "{0}: Could not obtain role for this RID.",
roleName );
}
}
}
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();
}
}
Imports System.Threading
Imports System.Security.Permissions
Imports System.Security.Principal
Class SecurityPrincipalDemo
Public Shared Sub DemonstrateWindowsBuiltInRoleEnum()
Dim myDomain As AppDomain = Thread.GetDomain()
myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
Dim myPrincipal As WindowsPrincipal = CType(Thread.CurrentPrincipal, WindowsPrincipal)
Console.WriteLine("{0} belongs to: ", myPrincipal.Identity.Name.ToString())
Dim wbirFields As Array = [Enum].GetValues(GetType(WindowsBuiltInRole))
Dim roleName As Object
For Each roleName In wbirFields
Try
' Cast the role name to a RID represented by the WindowsBuildInRole value.
Console.WriteLine("{0}? {1}.", roleName, myPrincipal.IsInRole(CType(roleName, WindowsBuiltInRole)))
Console.WriteLine("The RID for this role is: " + Fix(roleName).ToString())
Catch
Console.WriteLine("{0}: Could not obtain role for this RID.", roleName)
End Try
Next 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.
Dim sid As New SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, Nothing)
Console.WriteLine("WellKnownSidType BuiltinAdministratorsSid {0}? {1}.", sid.Value, myPrincipal.IsInRole(sid))
End Sub
Public Shared Sub Main()
DemonstrateWindowsBuiltInRoleEnum()
End Sub
End Class
Opmerkingen
De klasse WindowsPrincipal wordt voornamelijk gebruikt om de rol van een Windows gebruiker te controleren. Met de WindowsPrincipal.IsInRole overbelasting van de methode kunt u de gebruikersrol controleren met behulp van verschillende rolcontexten.
Constructors
| Name | Description |
|---|---|
| WindowsPrincipal(WindowsIdentity) |
Initialiseert een nieuw exemplaar van de WindowsPrincipal klasse met behulp van het opgegeven WindowsIdentity object. |
Eigenschappen
| Name | Description |
|---|---|
| Claims |
Hiermee haalt u een verzameling op die alle claims bevat van alle claimidentiteiten die aan deze claimprincipaal zijn gekoppeld. (Overgenomen van ClaimsPrincipal) |
| CustomSerializationData |
Bevat eventuele aanvullende gegevens die worden geleverd door een afgeleid type. Meestal ingesteld bij het aanroepen WriteTo(BinaryWriter, Byte[]). (Overgenomen van ClaimsPrincipal) |
| DeviceClaims |
Hiermee worden alle Windows apparaatclaims opgehaald van deze principal. |
| Identities |
Hiermee haalt u een verzameling op die alle claimsidentiteiten bevat die zijn gekoppeld aan deze claimprincipaal. (Overgenomen van ClaimsPrincipal) |
| Identity |
Hiermee haalt u de identiteit van de huidige principal op. |
| UserClaims |
Hiermee worden alle Windows gebruikersclaims opgehaald uit deze principal. |
Methoden
| Name | Description |
|---|---|
| AddIdentities(IEnumerable<ClaimsIdentity>) |
Voegt de opgegeven claimidentiteiten toe aan deze claimprincipaal. (Overgenomen van ClaimsPrincipal) |
| AddIdentity(ClaimsIdentity) |
Hiermee voegt u de opgegeven claimidentiteit toe aan deze claimprincipaal. (Overgenomen van ClaimsPrincipal) |
| Clone() |
Retourneert een kopie van dit exemplaar. (Overgenomen van ClaimsPrincipal) |
| CreateClaimsIdentity(BinaryReader) |
Hiermee maakt u een nieuwe claimidentiteit. (Overgenomen van ClaimsPrincipal) |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| FindAll(Predicate<Claim>) |
Hiermee worden alle claims opgehaald die overeenkomen met het opgegeven predicaat. (Overgenomen van ClaimsPrincipal) |
| FindAll(String) |
Hiermee worden alle of de claims met het opgegeven claimtype opgehaald. (Overgenomen van ClaimsPrincipal) |
| FindFirst(Predicate<Claim>) |
Haalt de eerste claim op die overeenkomt met het opgegeven predicaat. (Overgenomen van ClaimsPrincipal) |
| FindFirst(String) |
Haalt de eerste claim op met het opgegeven claimtype. (Overgenomen van ClaimsPrincipal) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Hiermee worden de SerializationInfo gegevens gevuld die nodig zijn om het huidige ClaimsPrincipal object te serialiseren. (Overgenomen van ClaimsPrincipal) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| HasClaim(Predicate<Claim>) |
Bepaalt of een van de claims-id's die zijn gekoppeld aan deze claimprincipaal een claim bevat die overeenkomt met het opgegeven predicaat. (Overgenomen van ClaimsPrincipal) |
| HasClaim(String, String) |
Bepaalt of een van de claims-id's die aan deze claimprincipaal zijn gekoppeld, een claim bevat met het opgegeven claimtype en de opgegeven waarde. (Overgenomen van ClaimsPrincipal) |
| IsInRole(Int32) |
Bepaalt of de huidige principal deel uitmaakt van de Windows gebruikersgroep met de opgegeven relatieve id (RID). |
| IsInRole(SecurityIdentifier) |
Bepaalt of de huidige principal deel uitmaakt van de Windows gebruikersgroep met de opgegeven beveiligings-id (SID). |
| IsInRole(String) |
Bepaalt of de huidige principal deel uitmaakt van de Windows gebruikersgroep met de opgegeven naam. |
| IsInRole(WindowsBuiltInRole) |
Bepaalt of de huidige principal deel uitmaakt van de Windows gebruikersgroep met de opgegeven WindowsBuiltInRole. |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
| WriteTo(BinaryWriter, Byte[]) |
Serialiseert met behulp van een BinaryWriter. (Overgenomen van ClaimsPrincipal) |
| WriteTo(BinaryWriter) |
Serialiseert met behulp van een BinaryWriter. (Overgenomen van ClaimsPrincipal) |