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í.
QueryInterceptorAttribute metody ji označí jako průsečík dotazu 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 vidět Orders pouze přidružené 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 se implementuje metodami, které jsou opatřeny poznámkami QueryInterceptorAttribute. Služby WCF Data Services neimplementují zásady zabezpečení, ale poskytují infrastrukturu potřebnou pro vývojáře služeb k zápisu vlastních pravidel zabezpečení a obchodního ověření.
Řízení přístupu a ověřování sady entit je povoleno prostřednictvím operací dotazu pomocí složení dotazu. Pokud chcete řídit přístup založený na entitách, 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 QueryInterceptorAttributes názvem entity nastavenou jako parametr.
Metoda nesmí přijímat žádné parametry.
Metoda musí vrátit výraz typu Expression<Func<T, bool>> , který je filtr, který se má skládat pro sadu entit.
Konstruktory
| Name | Description |
|---|---|
| QueryInterceptorAttribute(String) |
Inicializuje novou instanci QueryInterceptorAttribute třídy pro sadu entit určenou parametrem |
Vlastnosti
| Name | Description |
|---|---|
| EntitySetName |
Získá název sady entit, která obsahuje entitu, na kterou se průsečík vztahuje. |
| TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno od Attribute) |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
| GetHashCode() |
Vrátí kód hash pro tuto instanci. (Zděděno od Attribute) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IsDefaultAttribute() |
Při přepsání v odvozené třídě určuje, zda hodnota této instance je 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á určuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| _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) |