ClaimsPrincipal ClaimsPrincipal ClaimsPrincipal ClaimsPrincipal Class

정의

여러 클레임 기반 ID를 지원하는 IPrincipal 구현입니다.An IPrincipal implementation that supports multiple claims-based identities.

public ref class ClaimsPrincipal : System::Security::Principal::IPrincipal
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ClaimsPrincipal : System.Security.Principal.IPrincipal
type ClaimsPrincipal = class
    interface IPrincipal
Public Class ClaimsPrincipal
Implements IPrincipal
상속
ClaimsPrincipalClaimsPrincipalClaimsPrincipalClaimsPrincipal
특성
구현

예제

다음 예제는 HTTP 요청에서 사용자가 클레임을 추출 하 고 HTTP 응답에 씁니다.The following example extracts the claims presented by a user in an HTTP request and writes them to the HTTP response. 현재 사용자에서 읽기를 HttpContext 으로 ClaimsPrincipal합니다.The current user is read from the HttpContext as a ClaimsPrincipal. 클레임에서 읽은 및 응답에 기록 됩니다.The claims are then read from it and then are written to the response.

ClaimsPrincipal principal = HttpContext.Current.User as ClaimsPrincipal;  
if (null != principal)  
{  
   foreach (Claim claim in principal.Claims)  
   {  
      Response.Write("CLAIM TYPE: " + claim.Type + "; CLAIM VALUE: " + claim.Value + "</br>");  
   }  
}  

설명

.NET Framework 4.5부터, Windows Identity Foundation (WIF) 및 클레임 기반 id가 완전히 통합 되었기 때문에.NET Framework입니다.Beginning with .NET Framework 4.5, Windows Identity Foundation (WIF) and claims-based identity have been fully integrated into the .NET Framework. 즉, 이제.NET Framework의 보안 주체를 나타내는 여러 클래스에서 파생 되는 ClaimsPrincipal 간단히 구현 하는 대신는 IPrincipal 인터페이스입니다.This means that many classes that represent a principal in the .NET Framework now derive from ClaimsPrincipal rather than simply implementing the IPrincipal interface. 구현 하는 것 외에도 합니다 IPrincipal 인터페이스를 ClaimsPrincipal 클레임을 사용 하는 데 도움이 되는 메서드와 속성을 노출 합니다.In addition to implementing the IPrincipal interface, ClaimsPrincipal exposes properties and methods that are useful for working with claims.

ClaimsPrincipal 컬렉션 id를 각각 노출 된 ClaimsIdentity합니다.ClaimsPrincipal exposes a collection of identities, each of which is a ClaimsIdentity. 이 컬렉션을 통해 액세스할 수 있는 일반적인 경우는 Identities 속성인 단일 요소를 하나만 됩니다.In the common case, this collection, which is accessed through the Identities property, will only have a single element.

미치는 ClaimsPrincipal 가장 보안 주체 클래스가 파생 되는 보안 주체로.NET 4.5에서 강제로 하지 않을 id로 처리 하는 방식에 아무 것도 변경 합니다.The introduction of ClaimsPrincipal in .NET 4.5 as the principal from which most principal classes derive does not force you to change anything in the way in which you deal with identity. 하지만 않습니다, 그리고 더 많은 가능성을 열어 고 세부적인 액세스 제어를 더 많은 가능성을 제공 합니다.It does, however open up more possibilities and offer more chances to exercise finer access control. 예:For example:

  • 애플리케이션 코드 자체는 드라이브 추가 인증, 권한 부여 및 개인 설정 작업에 대 한 현재 보안 주체에 포함 된 클레임이와 직접 협업할 수 있습니다.The application code itself can work directly with the claims contained in the current principal to drive extra authentication, authorization, and personalization tasks.

  • 리소스 처리 파이프라인 실행 코드에 도달 하기 전에 인증 요청 및 권한 부여 정책을 사용 하 여 처리할 수 있는 클레임을 사용 하 여 프런트 수 있습니다.You can front your resources with a claims processing pipeline, which can deal with authentication requests and authorization policy even before execution reaches your code. 파생 된 클래스의 인스턴스는 사용자 지정 클레임 인증 관리자를 사용 하 여 웹 기반 애플리케이션 또는 서비스를 구성할 수는 예를 들어를 ClaimsAuthenticationManager 클래스입니다.For example, you can configure a web-based application or service with a custom claims authentication manager, an instance of a class that derives from the ClaimsAuthenticationManager class. 적절히 구성한 경우에 요청 처리 파이프라인을 호출 합니다 Authenticate 메서드를 전달 하 여 클레임 인증 관리자를 ClaimsPrincipal 들어오는 요청의 컨텍스트를 나타내는입니다.When so configured, the request processing pipeline invokes the Authenticate method on your claims authentication manager passing it a ClaimsPrincipal that represents the context of the incoming request. 클레임 인증 관리자에 게는 들어오는 클레임의 값을 기반으로 하는 인증을 수행할 수 있습니다.Your claims authentication manager can then perform authentication based on the values of the incoming claims. 이 수 또한 필터링, 변환 또는 들어오는 클레임 집합에 대 한 클레임을 추가 합니다.It can also filter, transform, or add claims to the incoming claim set. 예를 들어, 로컬 사용자 프로필과 같은 로컬 데이터 원본에서 생성 하는 새 클레임 집합과 들어오는 클레임을 보강을 사용할 수 있습니다.For example, it could be used to enrich the incoming claim set with new claims created from a local data source such as a local user profile

  • 파생 된 클래스의 인스턴스는 사용자 지정 클레임 권한 부여 관리자를 사용 하 여 웹 기반 애플리케이션을 구성할 수 있습니다는 ClaimsAuthorizationManager 클래스입니다.You can configure a web-based application with a custom claims authorization manager, an instance of a class that derives from the ClaimsAuthorizationManager class. 요청 처리 파이프라인에서 들어오는 패키지 적절히 구성한 경우 ClaimsPrincipalAuthorizationContext 호출을 CheckAccess 클레임 권한 부여 관리자에 게 메서드.When so configured, the request processing pipeline packages the incoming ClaimsPrincipal in an AuthorizationContext and invokes the CheckAccess method on your claims authorization manager. 그러면 클레임 권한 부여 관리자에 게 들어오는 클레임을 기반으로 하는 권한 부여를 적용할 수 있습니다.Your claims authorization manager can then enforce authorization based on the incoming claims.

  • 인라인 코드 클레임 기반 액세스 검사는 사용자 지정 클레임 권한 부여 관리자를 사용 하 여 애플리케이션을 구성 하 고 하나를 사용 하 여 수행할 수 있습니다 합니다 ClaimsPrincipalPermission 명령적 액세스 검사를 수행 하는 클래스 또는 ClaimsPrincipalPermissionAttribute 선언적 액세스 하려면 확인합니다.Inline claims-based code access checks can be performed by configuring your application with a custom claims authorization manager and using either the ClaimsPrincipalPermission class to perform imperative access checks or the ClaimsPrincipalPermissionAttribute to perform declarative access checks. 코드 클레임 기반 액세스 검사 처리 파이프라인 외부에서 수행 인라인와 함께 모든 애플리케이션에 사용할 수 있는으로 클레임 권한 부여 관리자가 구성 되어 있습니다.Claims-based code access checks are performed inline, outside of the processing pipeline, and so are available to all applications as long as a claims authorization manager is configured.

가져올 수 있습니다는 ClaimsPrincipal 캐스팅 하 여 RP 애플리케이션 (또는 스레드를 실행 중인 보안 주체)의 요청과 연결 된 보안 주체에 대 한 인스턴스를 Thread.CurrentPrincipal 속성을 ClaimsPrincipal입니다.You can obtain a ClaimsPrincipal instance for the principal associated with a request in an RP application (or the principal under which a thread is executing) by casting the Thread.CurrentPrincipal property to ClaimsPrincipal. 연결 된 클레임을 ClaimsPrincipal 개체를 통해 사용할 수 있는 해당 Claims 속성입니다.The claims associated with an ClaimsPrincipal object are available through its Claims property. Claims 속성 모든 보안 주체와 연결 된 id로 포함 된 클레임을 반환 합니다.The Claims property returns all of the claims contained by the identities associated with the principal. 일반적이 지 않은 경우에는 ClaimsPrincipal 여러 개 포함 된 ClaimsIdentity 인스턴스를 사용할 수는 Identities 속성 이거나 기본 id를 사용 하 여 액세스할 수는 Identity 속성입니다.In the uncommon case in which the ClaimsPrincipal contains multiple ClaimsIdentity instances, you can use the Identities property or you can access the primary identity by using the Identity property. ClaimsPrincipal 이러한 클레임을 검색할 수 있습니다 하는 여러 가지 방법을 제공 하 고 완전히 언어 통합 쿼리 (LINQ)를 지원 합니다.ClaimsPrincipal provides several methods through which these claims may be searched and fully supports Language Integrated Query (LINQ). Id를 사용 하 여 보안 주체에 추가 될 수는 AddIdentities 또는 AddIdentity 메서드.Identities can be added to the principal by using the AddIdentities or AddIdentity methods.

참고

Id를 추가 하려면를 ClaimsPrincipal, 호출자가 완전 신뢰가 필요 합니다.To add identities to the ClaimsPrincipal, a caller must have full trust.

기본적으로 WIF 우선 순위를 지정 WindowsIdentity 를 통해 반환할 주 id를 선택 하는 경우 개체는 Identity 속성입니다.By default, WIF prioritizes WindowsIdentity objects when selecting the primary identity to return through the Identity property. 통해 대리자를 제공 하 여이 동작을 수정할 수 있습니다는 PrimaryIdentitySelector 속성을 선택 합니다.You can modify this behavior by supplying a delegate through the PrimaryIdentitySelector property to perform the selection. 합니다 ClaimsPrincipalSelector 속성에 대 한 유사한 기능을 제공 합니다 Current 속성입니다.The ClaimsPrincipalSelector property provides similar functionality for the Current property.

클레임 기반 모델에서 지정된 된 역할에서 보안 주체 인지 해당 기본 id 클레임이에 의해 결정 됩니다.In the claim-based model, whether a principal is in a specified role is determined by the claims presented by its underlying identities. IsInRole 메서드 값이 지정 된 역할 클레임을 소유 하는지 여부를 확인 하려면 보안 주체와 연결 된 각 id는 기본적으로 검사 합니다.The IsInRole method essentially examines each identity associated with the principal to determine whether it possesses a claim with the specified role value. 클레임의 형식 (나타내는 해당 Claim.Type 속성) 검사 해야 하는 클레임을 결정 하는 데 검사를 통해 id에 지정 된 역할 중 해당 ClaimsIdentity.RoleClaimType 속성입니다.The type of the claim (represented by its Claim.Type property) used to determine which claims should be examined during role checks is specified on an identity through its ClaimsIdentity.RoleClaimType property. 따라서 보안 주체와 연결 된 다른 id에 대 한 다른 형식의 클레임을 역할 검사 중 검사할 수 있습니다.Thus, the claims examined during role checks can be of a different type for different identities associated with the principal.

생성자

ClaimsPrincipal() ClaimsPrincipal() ClaimsPrincipal() ClaimsPrincipal()

ClaimsPrincipal 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ClaimsPrincipal class.

ClaimsPrincipal(BinaryReader) ClaimsPrincipal(BinaryReader) ClaimsPrincipal(BinaryReader) ClaimsPrincipal(BinaryReader)

지정된 ClaimsPrincipal을 사용하여 BinaryReader의 인스턴스를 초기화합니다.Initializes an instance of ClaimsPrincipal with the specified BinaryReader.

ClaimsPrincipal(IEnumerable<ClaimsIdentity>) ClaimsPrincipal(IEnumerable<ClaimsIdentity>) ClaimsPrincipal(IEnumerable<ClaimsIdentity>) ClaimsPrincipal(IEnumerable<ClaimsIdentity>)

지정된 클레임 ID를 사용하여 ClaimsPrincipal 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ClaimsPrincipal class using the specified claims identities.

ClaimsPrincipal(IIdentity) ClaimsPrincipal(IIdentity) ClaimsPrincipal(IIdentity) ClaimsPrincipal(IIdentity)

지정된 ID에서 ClaimsPrincipal 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ClaimsPrincipal class from the specified identity.

ClaimsPrincipal(IPrincipal) ClaimsPrincipal(IPrincipal) ClaimsPrincipal(IPrincipal) ClaimsPrincipal(IPrincipal)

지정된 보안 주체에서 ClaimsPrincipal 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ClaimsPrincipal class from the specified principal.

ClaimsPrincipal(SerializationInfo, StreamingContext) ClaimsPrincipal(SerializationInfo, StreamingContext) ClaimsPrincipal(SerializationInfo, StreamingContext) ClaimsPrincipal(SerializationInfo, StreamingContext)

ISerializable을 사용하여 만든 serialize된 스트림으로부터 ClaimsPrincipal 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the ClaimsPrincipal class from a serialized stream created by using ISerializable.

속성

Claims Claims Claims Claims

이 클레임 보안 주체와 연결된 모든 클레임 ID의 모든 클레임을 포함하는 컬렉션을 가져옵니다.Gets a collection that contains all of the claims from all of the claims identities associated with this claims principal.

ClaimsPrincipalSelector ClaimsPrincipalSelector ClaimsPrincipalSelector ClaimsPrincipalSelector

Current 속성에 의해 반환된 클레임 보안 주체를 선택하는 데 사용된 대리자를 가져오거나 설정합니다.Gets or sets the delegate used to select the claims principal returned by the Current property.

Current Current Current Current

현재 클레임 주체를 가져옵니다.Gets the current claims principal.

CustomSerializationData CustomSerializationData CustomSerializationData CustomSerializationData

파생된 형식에서 제공하는 추가 데이터를 포함합니다.Contains any additional data provided by a derived type. 일반적으로 WriteTo(BinaryWriter, Byte[])를 호출할 때 설정합니다.Typically set when calling WriteTo(BinaryWriter, Byte[]).

Identities Identities Identities Identities

이 클레임 보안 주체와 연결된 모든 클레임 ID를 포함하는 컬렉션을 가져옵니다.Gets a collection that contains all of the claims identities associated with this claims principal.

Identity Identity Identity Identity

이 클레임 보안 주체와 연결된 기본 클레임 ID를 가져옵니다.Gets the primary claims identity associated with this claims principal.

PrimaryIdentitySelector PrimaryIdentitySelector PrimaryIdentitySelector PrimaryIdentitySelector

Identity 속성에 의해 반환된 클레임 ID를 선택하는 데 사용된 대리자를 가져오거나 설정합니다.Gets or sets the delegate used to select the claims identity returned by the Identity property.

메서드

AddIdentities(IEnumerable<ClaimsIdentity>) AddIdentities(IEnumerable<ClaimsIdentity>) AddIdentities(IEnumerable<ClaimsIdentity>) AddIdentities(IEnumerable<ClaimsIdentity>)

이 클레임 주체에 지정된 클레임 ID를 추가합니다.Adds the specified claims identities to this claims principal.

AddIdentity(ClaimsIdentity) AddIdentity(ClaimsIdentity) AddIdentity(ClaimsIdentity) AddIdentity(ClaimsIdentity)

이 클레임 보안 주체에 지정된 클레임 ID를 추가합니다.Adds the specified claims identity to this claims principal.

Clone() Clone() Clone() Clone()

이 인스턴스의 복사본을 반환합니다.Returns a copy of this instance.

CreateClaimsIdentity(BinaryReader) CreateClaimsIdentity(BinaryReader) CreateClaimsIdentity(BinaryReader) CreateClaimsIdentity(BinaryReader)

새 클레임 ID를 만듭니다.Creates a new claims identity.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(Inherited from Object)
FindAll(Predicate<Claim>) FindAll(Predicate<Claim>) FindAll(Predicate<Claim>) FindAll(Predicate<Claim>)

지정된 조건자와 일치하는 클레임을 모두 검색합니다.Retrieves all of the claims that are matched by the specified predicate.

FindAll(String) FindAll(String) FindAll(String) FindAll(String)

지정된 클레임 형식이 있는 모든 클레임 또는 해당 클레임을 검색합니다.Retrieves all or the claims that have the specified claim type.

FindFirst(Predicate<Claim>) FindFirst(Predicate<Claim>) FindFirst(Predicate<Claim>) FindFirst(Predicate<Claim>)

지정된 조건자와 일치하는 첫 번째 클레임을 검색합니다.Retrieves the first claim that is matched by the specified predicate.

FindFirst(String) FindFirst(String) FindFirst(String) FindFirst(String)

지정된 클레임 형식으로 첫 번째 클레임을 검색합니다.Retrieves the first claim with the specified claim type.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

현재 SerializationInfo 개체를 serialize하는 데 필요한 데이터로 ClaimsPrincipal를 채웁니다.Populates the SerializationInfo with data needed to serialize the current ClaimsPrincipal object.

GetType() GetType() GetType() GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(Inherited from Object)
HasClaim(Predicate<Claim>) HasClaim(Predicate<Claim>) HasClaim(Predicate<Claim>) HasClaim(Predicate<Claim>)

이 클레임 보안 주체와 연결된 클레임 ID에 지정된 조건자와 일치하는 클레임이 들어 있는지 여부를 확인합니다.Determines whether any of the claims identities associated with this claims principal contains a claim that is matched by the specified predicate.

HasClaim(String, String) HasClaim(String, String) HasClaim(String, String) HasClaim(String, String)

이 클레임 보안 주체와 연결된 클레임 ID에 지정된 클레임 형식 및 값을 갖는 클레임이 들어 있는지 여부를 확인합니다.Determines whether any of the claims identities associated with this claims principal contains a claim with the specified claim type and value.

IsInRole(String) IsInRole(String) IsInRole(String) IsInRole(String)

이 클레임 주체로 표시된 엔터티(사용자)가 지정된 역할에 속하는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether the entity (user) represented by this claims principal is in the specified role.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(Inherited from Object)
WriteTo(BinaryWriter) WriteTo(BinaryWriter) WriteTo(BinaryWriter) WriteTo(BinaryWriter)

BinaryWriter를 사용하여 직렬화합니다.Serializes using a BinaryWriter.

WriteTo(BinaryWriter, Byte[]) WriteTo(BinaryWriter, Byte[]) WriteTo(BinaryWriter, Byte[]) WriteTo(BinaryWriter, Byte[])

BinaryWriter를 사용하여 직렬화합니다.Serializes using a BinaryWriter.

적용 대상

추가 정보