QueryInterceptorAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Metoda QueryInterceptorAttribute on 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
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=true, Inherited=true)>]
type QueryInterceptorAttribute = class
inherit Attribute
Public NotInheritable Class QueryInterceptorAttribute
Inherits Attribute
- Dziedziczenie
- Atrybuty
Przykłady
Poniższy przykład kontroluje dostęp do Customers
zestawu jednostek. Każda z nich Customer
może wyświetlać Orders
tylko skojarzenie z tym 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
);
}
Uwagi
Autoryzacja i walidacja na poziomie zestawu jednostek są implementowane za pomocą metod z adnotacjami .QueryInterceptorAttribute Usługi danych WCF nie implementują zasad zabezpieczeń, ale zamiast tego zapewniają infrastrukturę wymaganą dla deweloperów usług do pisania własnych reguł zabezpieczeń i weryfikacji biznesowej.
Kontrola dostępu i walidacja zestawu jednostek są włączane za pomocą operacji zapytań przy użyciu kompozycji zapytań. Aby kontrolować dostęp oparty na jednostkach, zaimplementuj zestaw metod na jednostkę zgodnie z następującymi regułami:
Metoda musi mieć zakres publiczny i mieć adnotacje z parametrem QueryInterceptorAttribute, przyjmując nazwę zestawu jednostek jako parametr.
Metoda nie może akceptować żadnych parametrów.
Metoda musi zwrócić wyrażenie typu Expression<Func<T, bool>>
, które jest filtrem, który ma zostać skomponowany dla zestawu jednostek.
Konstruktory
QueryInterceptorAttribute(String) |
Inicjuje QueryInterceptorAttribute nowe wystąpienie klasy dla zestawu jednostek określonego |
Właściwości
EntitySetName |
Pobiera nazwę zestawu jednostek, który zawiera jednostkę, do której ma zastosowanie przechwytywanie. |
TypeId |
Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu . (Odziedziczone po Attribute) |
Metody
Equals(Object) |
Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi. (Odziedziczone po Attribute) |
GetHashCode() |
Zwraca wartość skrótu dla tego wystąpienia. (Odziedziczone po Attribute) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
IsDefaultAttribute() |
Podczas zastępowania w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej. (Odziedziczone po Attribute) |
Match(Object) |
Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Odziedziczone po Attribute) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone po Attribute) |