QueryInterceptorAttribute Класс

Определение

Атрибут 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
Наследование
QueryInterceptorAttribute
Атрибуты

Примеры

В следующем примере осуществляется управление доступом к 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 Servicesне реализуйте политики безопасности, а предоставьте инфраструктуру, необходимую разработчикам служб для написания собственных правил безопасности и бизнес-проверки.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 для набора сущностей, заданного параметром entitySetName.Initializes a new instance of the QueryInterceptorAttribute class for the entity set specified by the entitySetName parameter.

Свойства

EntitySetName

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

TypeId

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

(Унаследовано от Attribute)

Методы

Equals(Object)

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

(Унаследовано от Attribute)
GetHashCode()

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

(Унаследовано от Attribute)
GetType()

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

(Унаследовано от Object)
IsDefaultAttribute()

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

(Унаследовано от Attribute)
Match(Object)

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

(Унаследовано от Attribute)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

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

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

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

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

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

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

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

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

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

(Унаследовано от Attribute)

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