Condividi tramite


WindowsPrincipal Classe

Definizione

Consente al codice di verificare se un utente Windows appartiene a un gruppo 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 usare 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 WindowsPrincipal classe viene usata principalmente per controllare il ruolo di un utente di Windows. Gli overload del WindowsPrincipal.IsInRole metodo consentono di controllare il ruolo utente usando contesti di ruolo diversi.

Costruttori

WindowsPrincipal(WindowsIdentity)

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

Proprietà

Claims

Ottiene una raccolta che contiene tutte le attestazioni da tutte le identità di attestazioni associate all'entità delle attestazioni.

(Ereditato da ClaimsPrincipal)
CustomSerializationData

Contiene i dati aggiuntivi forniti da un tipo derivato. Generalmente impostato durante la chiamata a WriteTo(BinaryWriter, Byte[]).

(Ereditato da ClaimsPrincipal)
DeviceClaims

Ottiene tutte le attestazioni di dispositivi di 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'oggetto Principal corrente.

UserClaims

Ottiene tutte le attestazioni di utenti di Windows da questa entità.

Metodi

AddIdentities(IEnumerable<ClaimsIdentity>)

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

(Ereditato da ClaimsPrincipal)
AddIdentity(ClaimsIdentity)

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

(Ereditato da ClaimsPrincipal)
Clone()

Restituisce una copia dell'istanza corrente.

(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 che corrispondono al predicato specificato.

(Ereditato da ClaimsPrincipal)
FindAll(String)

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

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

Recupera la prima attestazione che corrisponde 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 ClaimsPrincipal corrente.

(Ereditato da ClaimsPrincipal)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

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

Determina se una qualsiasi delle identità di attestazione associate all'entità delle attestazioni contiene un'attestazione a cui corrisponde il predicato specificato.

(Ereditato da ClaimsPrincipal)
HasClaim(String, String)

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

(Ereditato da ClaimsPrincipal)
IsInRole(Int32)

Determina se l'oggetto Principal 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 nome specificato WindowsBuiltInRole.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
WriteTo(BinaryWriter)

Esegue la serializzazione usando BinaryWriter.

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

Esegue la serializzazione usando BinaryWriter.

(Ereditato da ClaimsPrincipal)

Si applica a