Sdílet prostřednictvím


WindowsPrincipal Třída

Definice

Umožňuje kódu zkontrolovat členství uživatele systému Windows ve skupině.

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
Dědičnost
WindowsPrincipal
Dědičnost
WindowsPrincipal
Atributy
Implementuje

Příklady

Následující příklad ukazuje, jak používat IsInRole přetížení metody. Výčet se WindowsBuiltInRole používá jako zdroj relativních identifikátorů (RID), které identifikují předdefinované role. Identifikátory RID se používají k určení rolí aktuálního objektu zabezpečení.

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

Poznámky

Třída se WindowsPrincipal primárně používá ke kontrole role uživatele systému Windows. Přetížení WindowsPrincipal.IsInRole metody umožňuje zkontrolovat roli uživatele pomocí různých kontextů rolí.

Konstruktory

WindowsPrincipal(WindowsIdentity)

Inicializuje novou instanci WindowsPrincipal třídy pomocí zadaného WindowsIdentity objektu.

Vlastnosti

Claims

Získá kolekci, která obsahuje všechny deklarace identity ze všech identit deklarací identity přidružené k tomuto objektu deklarací identity.

(Zděděno od ClaimsPrincipal)
CustomSerializationData

Obsahuje všechna další data poskytnutá odvozeným typem. Obvykle se nastavuje při volání WriteTo(BinaryWriter, Byte[]).

(Zděděno od ClaimsPrincipal)
DeviceClaims

Získá všechny deklarace identity zařízení s Windows z tohoto objektu zabezpečení.

Identities

Získá kolekci, která obsahuje všechny identity deklarací identity přidružené k tomuto objektu zabezpečení deklarací identity.

(Zděděno od ClaimsPrincipal)
Identity

Získá identitu aktuálního objektu zabezpečení.

UserClaims

Získá všechny deklarace identity uživatele systému Windows z tohoto objektu zabezpečení.

Metody

AddIdentities(IEnumerable<ClaimsIdentity>)

Přidá zadané identity deklarací identity do tohoto objektu deklarací identity.

(Zděděno od ClaimsPrincipal)
AddIdentity(ClaimsIdentity)

Přidá do tohoto objektu deklarací identity zadanou identitu deklarací identity.

(Zděděno od ClaimsPrincipal)
Clone()

Vrátí kopii této instance.

(Zděděno od ClaimsPrincipal)
CreateClaimsIdentity(BinaryReader)

Vytvoří novou identitu deklarací identity.

(Zděděno od ClaimsPrincipal)
Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
FindAll(Predicate<Claim>)

Načte všechny deklarace identity, které odpovídají zadanému predikátu.

(Zděděno od ClaimsPrincipal)
FindAll(String)

Načte všechny nebo deklarace identity, které mají zadaný typ deklarace identity.

(Zděděno od ClaimsPrincipal)
FindFirst(Predicate<Claim>)

Načte první deklaraci identity odpovídající zadanému predikátu.

(Zděděno od ClaimsPrincipal)
FindFirst(String)

Načte první deklaraci identity se zadaným typem deklarace identity.

(Zděděno od ClaimsPrincipal)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetObjectData(SerializationInfo, StreamingContext)

Naplní SerializationInfo data potřebná k serializaci aktuálního ClaimsPrincipal objektu.

(Zděděno od ClaimsPrincipal)
GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
HasClaim(Predicate<Claim>)

Určuje, zda některá z identit deklarací přidružených k tomuto objektu deklarací identity obsahuje deklaraci identity, která odpovídá zadanému predikátu.

(Zděděno od ClaimsPrincipal)
HasClaim(String, String)

Určuje, jestli některá z identit deklarací identity přidružených k tomuto objektu deklarací identity obsahuje deklaraci identity se zadaným typem a hodnotou deklarace identity.

(Zděděno od ClaimsPrincipal)
IsInRole(Int32)

Určuje, zda aktuální objekt zabezpečení patří do skupiny uživatelů systému Windows se zadaným relativním identifikátorem (RID).

IsInRole(SecurityIdentifier)

Určuje, zda aktuální objekt zabezpečení patří do skupiny uživatelů systému Windows se zadaným identifikátorem zabezpečení (SID).

IsInRole(String)

Určuje, zda aktuální objekt zabezpečení patří do skupiny uživatelů systému Windows se zadaným názvem.

IsInRole(WindowsBuiltInRole)

Určuje, zda aktuální objekt zabezpečení patří do skupiny uživatelů systému Windows se zadaným WindowsBuiltInRoleobjektem .

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
WriteTo(BinaryWriter, Byte[])

Serializuje pomocí .BinaryWriter

(Zděděno od ClaimsPrincipal)
WriteTo(BinaryWriter)

Serializuje pomocí .BinaryWriter

(Zděděno od ClaimsPrincipal)

Platí pro