QueryInterceptorAttribute 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
메서드의 QueryInterceptorAttribute는 지정된 엔터티 집합에 쿼리 인터셉터로 주석 처리됩니다.
public ref class QueryInterceptorAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=true, Inherited=true)]
public sealed class QueryInterceptorAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=true, Inherited=true)>]
type QueryInterceptorAttribute = class
inherit Attribute
Public NotInheritable Class QueryInterceptorAttribute
Inherits Attribute
- 상속
- 특성
예제
다음 예제에서는 Customers
엔터티 집합에 대한 액세스를 제어합니다. 각 Customer
는 해당 Orders
에 연결된 Customer
만 볼 수 있습니다.
[QueryInterceptor("Orders")]
public Expression<Func<Order, bool>> FilterOrders()
{
return o => o.Customer.Name == /* Current principal name. */;
}
// Insures that the user accessing the customer(s) has the appropriate
// rights as defined in the QueryRules object to access the customer
// resource(s).
[QueryInterceptor ("Customers")]
public Expression<Func<Customer, bool>> FilterCustomers()
{
return c => c.Name == /* Current principal name. */ &&
this.CurrentDataSource.QueryRules.Contains(
rule => rule.Name == c.Name &&
rule.CustomerAllowedToQuery == true
);
}
설명
엔터티 집합 수준 권한 부여 및 유효성 검사는 QueryInterceptorAttribute를 사용하여 주석을 단 메서드를 통해 구현됩니다. WCF Data Servicess는 보안 정책을 구현하지 않고 서비스 개발자가 자체 보안 규칙 및 비즈니스 유효성 검사를 작성하는 데 필요한 인프라를 제공합니다.
엔터티 집합 액세스 제어 및 유효성 검사는 쿼리 구성을 사용하여 쿼리 작업을 통해 사용할 수 있습니다. 엔터티 기반 액세스를 제어하려면 다음 규칙에 따라 엔터티 집합별 메서드를 구현합니다.
메서드에는 공용 범위가 있고 QueryInterceptorAttribute가 주석으로 추가되어야 하며, 이때 엔터티 집합의 이름을 매개 변수로 사용합니다.
메서드는 매개 변수를 허용하지 말아야 합니다.
메서드는 엔터티 집합에 대해 구성할 필터인 Expression<Func<T, bool>>
형식의 식을 반환해야 합니다.
생성자
QueryInterceptorAttribute(String) |
QueryInterceptorAttribute 매개 변수로 지정된 엔터티 집합에 대한 |
속성
EntitySetName |
인터셉터가 적용되는 엔터티를 포함하는 엔터티 집합의 이름을 가져옵니다. |
TypeId |
파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다. (다음에서 상속됨 Attribute) |
메서드
Equals(Object) |
이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
GetHashCode() |
이 인스턴스의 해시 코드를 반환합니다. (다음에서 상속됨 Attribute) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
IsDefaultAttribute() |
파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다. (다음에서 상속됨 Attribute) |
Match(Object) |
파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다. (다음에서 상속됨 Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다. (다음에서 상속됨 Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1). (다음에서 상속됨 Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다. (다음에서 상속됨 Attribute) |
적용 대상
.NET