WindowsPrincipal 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
코드에서 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
- 특성
- 구현
예제
다음 예제에서는 메서드 오버로드를 IsInRole 사용하는 방법을 보여 줍니다. WindowsBuiltInRole 열거형은 기본 제공 역할을 식별하는 RID(상대 식별자)의 원본으로 사용됩니다. 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) |
지정된 WindowsIdentity 개체를 사용하여 WindowsPrincipal 클래스의 새 인스턴스를 초기화합니다. |
속성
Claims |
이 클레임 보안 주체와 연결된 모든 클레임 ID의 모든 클레임을 포함하는 컬렉션을 가져옵니다. (다음에서 상속됨 ClaimsPrincipal) |
CustomSerializationData |
파생된 형식에서 제공하는 추가 데이터를 포함합니다. 일반적으로 WriteTo(BinaryWriter, Byte[])를 호출할 때 설정합니다. (다음에서 상속됨 ClaimsPrincipal) |
DeviceClaims |
이 보안 주체의 모든 Windows 디바이스 클레임을 가져옵니다. |
Identities |
이 클레임 보안 주체와 연결된 모든 클레임 ID를 포함하는 컬렉션을 가져옵니다. (다음에서 상속됨 ClaimsPrincipal) |
Identity |
현재 보안 주체(principal)의 ID를 가져옵니다. |
UserClaims |
이 보안 주체의 모든 Windows 사용자 클레임을 가져옵니다. |
메서드
AddIdentities(IEnumerable<ClaimsIdentity>) |
이 클레임 주체에 지정된 클레임 ID를 추가합니다. (다음에서 상속됨 ClaimsPrincipal) |
AddIdentity(ClaimsIdentity) |
이 클레임 보안 주체에 지정된 클레임 ID를 추가합니다. (다음에서 상속됨 ClaimsPrincipal) |
Clone() |
이 인스턴스의 복사본을 반환합니다. (다음에서 상속됨 ClaimsPrincipal) |
CreateClaimsIdentity(BinaryReader) |
새 클레임 ID를 만듭니다. (다음에서 상속됨 ClaimsPrincipal) |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
FindAll(Predicate<Claim>) |
지정된 조건자와 일치하는 클레임을 모두 검색합니다. (다음에서 상속됨 ClaimsPrincipal) |
FindAll(String) |
모든 클레임 또는 지정된 클레임 형식을 갖는 클레임을 검색합니다. (다음에서 상속됨 ClaimsPrincipal) |
FindFirst(Predicate<Claim>) |
지정된 조건자와 일치하는 첫 번째 클레임을 검색합니다. (다음에서 상속됨 ClaimsPrincipal) |
FindFirst(String) |
지정된 클레임 형식으로 첫 번째 클레임을 검색합니다. (다음에서 상속됨 ClaimsPrincipal) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetObjectData(SerializationInfo, StreamingContext) |
현재 SerializationInfo 개체를 serialize하는 데 필요한 데이터로 ClaimsPrincipal를 채웁니다. (다음에서 상속됨 ClaimsPrincipal) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
HasClaim(Predicate<Claim>) |
이 클레임 보안 주체와 연결된 클레임 ID에 지정된 조건자와 일치하는 클레임이 들어 있는지 여부를 확인합니다. (다음에서 상속됨 ClaimsPrincipal) |
HasClaim(String, String) |
이 클레임 보안 주체와 연결된 클레임 ID에 지정된 클레임 형식 및 값을 갖는 클레임이 들어 있는지 여부를 확인합니다. (다음에서 상속됨 ClaimsPrincipal) |
IsInRole(Int32) |
현재 보안 주체가 지정된 RID(상대 식별자)를 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다. |
IsInRole(SecurityIdentifier) |
현재 보안 주체가 지정된 SID(보안 식별자)를 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다. |
IsInRole(String) |
현재 보안 주체가 지정된 이름을 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다. |
IsInRole(WindowsBuiltInRole) |
현재 보안 주체가 지정된 WindowsBuiltInRole을 갖는 Windows 사용자 그룹에 속하는지 여부를 확인합니다. |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
WriteTo(BinaryWriter) |
BinaryWriter를 사용하여 직렬화합니다. (다음에서 상속됨 ClaimsPrincipal) |
WriteTo(BinaryWriter, Byte[]) |
BinaryWriter를 사용하여 직렬화합니다. (다음에서 상속됨 ClaimsPrincipal) |
적용 대상
.NET