WindowsPrincipal Classe

Definizione

Consente al codice di controllare l'appartenenza al gruppo di Windows di un utente di Windows.

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

Esempio

Nell'esempio seguente viene illustrato come utilizzare gli overload del IsInRole metodo . L'enumerazione WindowsBuiltInRole viene usata come origine per gli identificatori relativi (RID) che identificano i ruoli predefiniti. I RID vengono usati per determinare i ruoli dell'entità corrente.

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

Commenti

La classe WindowsPrincipal viene usata principalmente per controllare il ruolo di un utente Windows. Gli overload del WindowsPrincipal.IsInRole metodo consentono di controllare il ruolo utente usando contesti di ruolo diversi.

Costruttori

Nome Descrizione
WindowsPrincipal(WindowsIdentity)

Inizializza una nuova istanza della WindowsPrincipal classe utilizzando l'oggetto specificato WindowsIdentity .

Proprietà

Nome Descrizione
Claims

Ottiene una raccolta che contiene tutte le attestazioni di tutte le identità delle attestazioni associate a questa entità attestazioni.

(Ereditato da ClaimsPrincipal)
CustomSerializationData

Contiene eventuali dati aggiuntivi forniti da un tipo derivato. In genere impostata quando si chiama WriteTo(BinaryWriter, Byte[]).

(Ereditato da ClaimsPrincipal)
DeviceClaims

Ottiene tutte le attestazioni del dispositivo Windows da questa entità.

Identities

Ottiene una raccolta che contiene tutte le identità delle attestazioni associate a questa entità attestazioni.

(Ereditato da ClaimsPrincipal)
Identity

Ottiene l'identità dell'entità corrente.

UserClaims

Ottiene tutte le attestazioni utente Windows da questa entità.

Metodi

Nome Descrizione
AddIdentities(IEnumerable<ClaimsIdentity>)

Aggiunge le identità delle attestazioni specificate a questa entità attestazioni.

(Ereditato da ClaimsPrincipal)
AddIdentity(ClaimsIdentity)

Aggiunge l'identità delle attestazioni specificata a questa entità attestazioni.

(Ereditato da ClaimsPrincipal)
Clone()

Restituisce una copia dell'istanza.

(Ereditato da ClaimsPrincipal)
CreateClaimsIdentity(BinaryReader)

Crea una nuova identità delle attestazioni.

(Ereditato da ClaimsPrincipal)
Equals(Object)

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

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

Recupera tutte le attestazioni corrispondenti al predicato specificato.

(Ereditato da ClaimsPrincipal)
FindAll(String)

Recupera tutte le attestazioni o che hanno il tipo di attestazione specificato.

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

Recupera la prima attestazione corrispondente al predicato specificato.

(Ereditato da ClaimsPrincipal)
FindFirst(String)

Recupera la prima attestazione con il tipo di attestazione specificato.

(Ereditato da ClaimsPrincipal)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetObjectData(SerializationInfo, StreamingContext)

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

(Ereditato da ClaimsPrincipal)
GetType()

Ottiene il Type dell'istanza corrente.

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

Determina se una delle identità delle attestazioni associate a questa entità attestazioni contiene un'attestazione corrispondente al predicato specificato.

(Ereditato da ClaimsPrincipal)
HasClaim(String, String)

Determina se una delle identità delle attestazioni associate a questa entità attestazioni contiene un'attestazione con il tipo di attestazione e il valore specificati.

(Ereditato da ClaimsPrincipal)
IsInRole(Int32)

Determina se l'entità corrente appartiene al gruppo di utenti Windows con l'identificatore relativo (RID) specificato.

IsInRole(SecurityIdentifier)

Determina se l'entità corrente appartiene al gruppo di utenti Windows con l'identificatore di sicurezza (SID) specificato.

IsInRole(String)

Determina se l'entità corrente appartiene al gruppo di utenti Windows con il nome specificato.

IsInRole(WindowsBuiltInRole)

Determina se l'entità corrente appartiene al gruppo di utenti Windows con il WindowsBuiltInRole specificato.

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

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

Serializza utilizzando un oggetto BinaryWriter.

(Ereditato da ClaimsPrincipal)
WriteTo(BinaryWriter)

Serializza utilizzando un oggetto BinaryWriter.

(Ereditato da ClaimsPrincipal)

Si applica a