Поделиться через


WindowsPrincipal Класс

Определение

Включает код для проверки членства пользователя Windows в группе 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
Наследование
WindowsPrincipal
Наследование
WindowsPrincipal
Атрибуты
Реализации

Примеры

В следующем примере показано, как использовать перегрузки IsInRole метода. Перечисление WindowsBuiltInRole используется в качестве источника для относительных идентификаторов (RID), определяющих встроенные роли. Идентификаторы ИДЕНТИФИКАТОРов используются для определения ролей текущего субъекта.

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

Комментарии

Класс WindowsPrincipal в основном используется для проверки роли пользователя Windows. Перегрузки WindowsPrincipal.IsInRole метода позволяют проверять роль пользователя с помощью различных контекстов ролей.

Конструкторы

WindowsPrincipal(WindowsIdentity)

Инициализирует новый экземпляр класса WindowsPrincipal, используя указанный объект WindowsIdentity.

Свойства

Claims

Возвращает коллекцию, содержащую все утверждения из всех удостоверений, основанных на утверждениях, которые связаны с этим субъектом утверждений.

(Унаследовано от ClaimsPrincipal)
CustomSerializationData

Содержит дополнительные данные, предоставленные производным типом. Обычно устанавливается при вызове WriteTo(BinaryWriter, Byte[]).

(Унаследовано от ClaimsPrincipal)
DeviceClaims

Получает все утверждения устройства Windows из этого субъекта.

Identities

Возвращает коллекцию, содержащую все удостоверения утверждений, связанные с этим субъектом утверждений.

(Унаследовано от ClaimsPrincipal)
Identity

Возвращает удостоверение текущего участника.

UserClaims

Получает все утверждения пользователя Windows из этого субъекта.

Методы

AddIdentities(IEnumerable<ClaimsIdentity>)

Добавляет указанные удостоверения, основанные на утверждениях, в этот субъект утверждений.

(Унаследовано от ClaimsPrincipal)
AddIdentity(ClaimsIdentity)

Добавляет указанное удостоверение утверждения к этому участнику утверждений.

(Унаследовано от ClaimsPrincipal)
Clone()

Возвращает копию этого экземпляра.

(Унаследовано от ClaimsPrincipal)
CreateClaimsIdentity(BinaryReader)

Создает новое удостоверение, основанное на утверждениях.

(Унаследовано от ClaimsPrincipal)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
FindAll(Predicate<Claim>)

Извлекает все утверждения, соответствующие указанного предикату.

(Унаследовано от ClaimsPrincipal)
FindAll(String)

Извлекает все утверждения или утверждения, которые имеют заданный тип утверждения.

(Унаследовано от ClaimsPrincipal)
FindFirst(Predicate<Claim>)

Извлекает первое утверждение, соответствующие указанному предикату.

(Унаследовано от ClaimsPrincipal)
FindFirst(String)

Извлекает первое утверждение с указанным типом утверждения.

(Унаследовано от ClaimsPrincipal)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)

Заполняет объект SerializationInfo данными, необходимыми для сериализации текущего объекта ClaimsPrincipal.

(Унаследовано от ClaimsPrincipal)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
HasClaim(Predicate<Claim>)

Определяет, содержат ли удостоверения, основанные на утверждениях и связанные с субъектом утверждений, утверждения, которые соответствуют указанному предикату.

(Унаследовано от ClaimsPrincipal)
HasClaim(String, String)

Определяет, содержат ли удостоверения утверждений, связанные с субъектом утверждений, утверждения с указанным типом и значением.

(Унаследовано от ClaimsPrincipal)
IsInRole(Int32)

Определяет, относится ли текущий участник к группе пользователей Windows с заданным относительным идентификатором (RID).

IsInRole(SecurityIdentifier)

Определяет, относится ли текущий субъект к группе пользователей Windows с заданным идентификатором безопасности (SID).

IsInRole(String)

Определяет, относится ли текущий субъект к группе пользователей Windows с заданным именем.

IsInRole(WindowsBuiltInRole)

Определяет, относится ли текущий субъект к группе пользователей Windows с заданным WindowsBuiltInRole.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
WriteTo(BinaryWriter)

Выполняет сериализацию с помощью BinaryWriter.

(Унаследовано от ClaimsPrincipal)
WriteTo(BinaryWriter, Byte[])

Выполняет сериализацию с помощью BinaryWriter.

(Унаследовано от ClaimsPrincipal)

Применяется к