WindowsPrincipal Klasse

Definition

Ermöglicht code das Überprüfen der Windows-Gruppenmitgliedschaft eines Windows-Benutzers.

public ref class WindowsPrincipal : System::Security::Claims::ClaimsPrincipal
public ref class WindowsPrincipal : System::Security::Principal::IPrincipal
public 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
type WindowsPrincipal = class
    inherit 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
Inherits ClaimsPrincipal
Public Class WindowsPrincipal
Implements IPrincipal
Vererbung
WindowsPrincipal
Vererbung
WindowsPrincipal
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird die Verwendung der IsInRole Methodenüberladungen veranschaulicht. Die WindowsBuiltInRole Enumeration wird als Quelle für die relativen Bezeichner (RELATIVE Identifiers, RIDs) verwendet, die die integrierten Rollen identifizieren. Die RIDs werden verwendet, um die Rollen des aktuellen Prinzipals zu bestimmen.

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

Hinweise

Die klasse WindowsPrincipal wird in erster Linie verwendet, um die Rolle eines Windows Benutzers zu überprüfen. Mit WindowsPrincipal.IsInRole den Methodenüberladungen können Sie die Benutzerrolle mithilfe verschiedener Rollenkontexte überprüfen.

Konstruktoren

Name Beschreibung
WindowsPrincipal(WindowsIdentity)

Initialisiert eine neue Instanz der WindowsPrincipal Klasse mithilfe des angegebenen WindowsIdentity-Objekts.

Eigenschaften

Name Beschreibung
Claims

Ruft eine Auflistung ab, die alle Ansprüche aus allen Anspruchsidentitäten enthält, die diesem Anspruchsprinzipal zugeordnet sind.

(Geerbt von ClaimsPrincipal)
CustomSerializationData

Enthält alle zusätzlichen Daten, die von einem abgeleiteten Typ bereitgestellt werden. Wird normalerweise beim Aufrufen WriteTo(BinaryWriter, Byte[])festgelegt.

(Geerbt von ClaimsPrincipal)
DeviceClaims

Ruft alle Windows Geräteansprüche aus diesem Prinzipal ab.

Identities

Ruft eine Auflistung ab, die alle Anspruchsidentitäten enthält, die diesem Anspruchsprinzipal zugeordnet sind.

(Geerbt von ClaimsPrincipal)
Identity

Ruft die Identität des aktuellen Prinzipals ab.

UserClaims

Ruft alle Windows Benutzeransprüche aus diesem Prinzipal ab.

Methoden

Name Beschreibung
AddIdentities(IEnumerable<ClaimsIdentity>)

Fügt diesem Anspruchsprinzipal die angegebenen Anspruchsidentitäten hinzu.

(Geerbt von ClaimsPrincipal)
AddIdentity(ClaimsIdentity)

Fügt dieser Anspruchsprinzipal die angegebene Anspruchsidentität hinzu.

(Geerbt von ClaimsPrincipal)
Clone()

Gibt eine Kopie dieser Instanz zurück.

(Geerbt von ClaimsPrincipal)
CreateClaimsIdentity(BinaryReader)

Erstellt eine neue Anspruchsidentität.

(Geerbt von ClaimsPrincipal)
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
FindAll(Predicate<Claim>)

Ruft alle Ansprüche ab, die mit dem angegebenen Prädikat übereinstimmen.

(Geerbt von ClaimsPrincipal)
FindAll(String)

Ruft alle Oder die Ansprüche ab, die den angegebenen Anspruchstyp aufweisen.

(Geerbt von ClaimsPrincipal)
FindFirst(Predicate<Claim>)

Ruft den ersten Anspruch ab, der mit dem angegebenen Prädikat übereinstimmt.

(Geerbt von ClaimsPrincipal)
FindFirst(String)

Ruft den ersten Anspruch mit dem angegebenen Anspruchstyp ab.

(Geerbt von ClaimsPrincipal)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetObjectData(SerializationInfo, StreamingContext)

Füllt die daten auf, die SerializationInfo zum Serialisieren des aktuellen ClaimsPrincipal Objekts erforderlich sind.

(Geerbt von ClaimsPrincipal)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
HasClaim(Predicate<Claim>)

Bestimmt, ob eine der Anspruchsidentitäten, die diesem Anspruchsprinzipal zugeordnet sind, einen Anspruch enthält, der mit dem angegebenen Prädikat übereinstimmt.

(Geerbt von ClaimsPrincipal)
HasClaim(String, String)

Bestimmt, ob einer der Anspruchsidentitäten, die diesem Anspruchsprinzipal zugeordnet sind, einen Anspruch mit dem angegebenen Anspruchstyp und -wert enthält.

(Geerbt von ClaimsPrincipal)
IsInRole(Int32)

Bestimmt, ob der aktuelle Prinzipal zur Windows Benutzergruppe mit dem angegebenen relativen Bezeichner (RID) gehört.

IsInRole(SecurityIdentifier)

Bestimmt, ob der aktuelle Prinzipal zur Windows Benutzergruppe mit der angegebenen Sicherheits-ID (SID) gehört.

IsInRole(String)

Bestimmt, ob der aktuelle Prinzipal zur Windows Benutzergruppe mit dem angegebenen Namen gehört.

IsInRole(WindowsBuiltInRole)

Bestimmt, ob der aktuelle Prinzipal zur Windows Benutzergruppe mit dem angegebenen WindowsBuiltInRole gehört.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
WriteTo(BinaryWriter, Byte[])

Serialisiert mit einem BinaryWriter.

(Geerbt von ClaimsPrincipal)
WriteTo(BinaryWriter)

Serialisiert mit einem BinaryWriter.

(Geerbt von ClaimsPrincipal)

Gilt für: