QueryInterceptorAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Objekt QueryInterceptorAttribute v metodě ji označí jako zachytávání dotazů v zadané sadě entit.
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
- Dědičnost
- Atributy
Příklady
Následující příklad řídí přístup k Customers
sadě entit. Každý z nich Customer
může zobrazit Orders
pouze přidružený k chyt .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
);
}
Poznámky
Autorizace a ověřování na úrovni sady entit je implementováno metodami opatřenými poznámkami QueryInterceptorAttribute. Datové služby WCF neimplementují zásady zabezpečení, ale poskytují infrastrukturu potřebnou pro vývojáře služeb, aby mohli psát vlastní pravidla zabezpečení a obchodní ověřování.
Řízení přístupu a ověřování sady entit se povoluje prostřednictvím operací dotazů pomocí složení dotazů. Pokud chcete řídit přístup na základě entity, implementujte sadu metod na entitu podle následujících pravidel:
Metoda musí mít veřejný obor a musí být opatřena poznámkami s QueryInterceptorAttributenázvem sady entit jako parametrem .
Metoda nesmí přijímat žádné parametry.
Metoda musí vrátit výraz typu Expression<Func<T, bool>>
, který je filtrem, který má být sestaven pro sadu entit.
Konstruktory
QueryInterceptorAttribute(String) |
Inicializuje novou instanci QueryInterceptorAttribute třídy pro sadu entit určenou parametrem |
Vlastnosti
EntitySetName |
Získá název sady entit, která obsahuje entitu, na kterou se vztahuje zachytávání. |
TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tuto Attributetřídu . (Zděděno od Attribute) |
Metody
Equals(Object) |
Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
GetHashCode() |
Vrátí hodnotu hash pro tuto instanci. (Zděděno od Attribute) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
IsDefaultAttribute() |
Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnotou pro odvozenou třídu. (Zděděno od Attribute) |
Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. (Zděděno od Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Načte informace o typu objektu, které lze použít k získání informací o typu pro rozhraní. (Zděděno od Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). (Zděděno od Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Poskytuje přístup k vlastnostem a metodám vystaveným objektem. (Zděděno od Attribute) |