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
- Наследование
- Атрибуты
Примеры
Следующий пример управляет доступом к набору сущностей 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 |
Получает имя набора сущностей, содержащее сущность, к которой применяется перехватчик. |
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) |