WindowsPrincipal Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Позволяет коду проверить членство в группе Windows пользователя Windows.
public ref class WindowsPrincipal : System::Security::Principal::IPrincipal
public ref 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
[<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
Implements IPrincipal
Public Class WindowsPrincipal
Inherits ClaimsPrincipal
- Наследование
-
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) |
Инициализирует новый экземпляр класса с помощью указанного WindowsPrincipalWindowsIdentity объекта. |
Свойства
| Имя | Описание |
|---|---|
| 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, Byte[]) |
Сериализуется с помощью .BinaryWriter (Унаследовано от ClaimsPrincipal) |
| WriteTo(BinaryWriter) |
Сериализуется с помощью .BinaryWriter (Унаследовано от ClaimsPrincipal) |