QueryInterceptorAttribute QueryInterceptorAttribute QueryInterceptorAttribute QueryInterceptorAttribute Class

Определение

Атрибут QueryInterceptorAttribute для метода помечает его как перехватчик запроса для указанного набора сущностей.The QueryInterceptorAttribute on a method annotates it as a query interceptor on the specified entity set.

public ref class QueryInterceptorAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=true, Inherited=true)]
public sealed class QueryInterceptorAttribute : Attribute
type QueryInterceptorAttribute = class
    inherit Attribute
Public NotInheritable Class QueryInterceptorAttribute
Inherits Attribute
Наследование
QueryInterceptorAttributeQueryInterceptorAttributeQueryInterceptorAttributeQueryInterceptorAttribute
Атрибуты

Примеры

Следующий пример управляет доступом к Customers набора сущностей.The following example controls access to the Customers entity set. Каждый Customer могут видеть только Orders , связанных с Customer.Each Customer can only see Orders associated with that 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.Entity set-level authorization and validation is implemented by methods annotated with the QueryInterceptorAttribute. Службы данных WCFWCF Data Servicess не реализации политик безопасности, а вместо этого предоставляют инфраструктуру, необходимую разработчикам служб для написания собственных правил безопасности и бизнес-проверок.s do not implement security policies but instead provide the infrastructure required for service developers to write their own security rules and business validation.

Набор сущностей, управление доступом и включена проверка с помощью операций запросов с помощью построения запроса.Entity set access control and validation is enabled through query operations by using query composition. Для управления доступом на основе сущностей, реализуйте метод каждого набора сущностей, согласно следующим правилам:To control entity-based access, implement a method-per-entity set according to the following rules:

Метод должен иметь открытую область видимости и сопровождаться атрибутом QueryInterceptorAttribute, как имя сущности в качестве параметра.The method must have public scope and be annotated with the QueryInterceptorAttribute, taking the name of a entity set as a parameter.

Этот метод должен принимать никаких параметров.The method must accept no parameters.

Метод должен вернуть выражение типа Expression<Func<T, bool>> то есть фильтр, чтобы включать для набора сущностей.The method must return an expression of type Expression<Func<T, bool>> that is the filter to be composed for the entity set.

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

QueryInterceptorAttribute(String) QueryInterceptorAttribute(String) QueryInterceptorAttribute(String) QueryInterceptorAttribute(String)

Инициализирует новый экземпляр класса QueryInterceptorAttribute для набора сущностей, заданного параметром entitySetName.Initializes a new instance of the QueryInterceptorAttribute class for the entity set specified by the entitySetName parameter.

Свойства

EntitySetName EntitySetName EntitySetName EntitySetName

Получает имя набора сущностей, содержащее сущность, к которой применяется перехватчик.Gets the name of the entity set that contains the entity to which the interceptor applies.

TypeId TypeId TypeId TypeId

При реализации в производном классе возвращает уникальный идентификатор для этого Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Методы

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

Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Возвращает хэш-код для данного экземпляра.Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

При переопределении в производном классе показывает, является ли значение данного экземпляра значением по умолчанию для производного класса.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
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)

Явные реализации интерфейса

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые могут использоваться для получения сведений о типе интерфейса.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

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