QueryInterceptorAttribute Класс

Определение

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

Примеры

В следующем примере управляет доступом к набору 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 не реализуют политики безопасности, а предоставляют инфраструктуру, необходимую разработчикам служб для написания собственных правил безопасности и бизнес-проверки.

Управление доступом и проверка наборов сущностей включена с помощью операций запроса с помощью композиции запросов. Чтобы управлять доступом на основе сущностей, реализуйте набор методов для каждой сущности в соответствии со следующими правилами:

Метод должен иметь общедоступную область и быть аннотирован с QueryInterceptorAttributeименем набора сущностей в качестве параметра.

Метод не должен принимать параметры.

Метод должен возвращать выражение типа Expression<Func<T, bool>> , которое является фильтром для набора сущностей.

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

Имя Описание
QueryInterceptorAttribute(String)

Инициализирует новый экземпляр QueryInterceptorAttribute класса для набора сущностей, указанного параметром entitySetName .

Свойства

Имя Описание
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)

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