QueryInterceptorAttribute Klasa

Definicja

QueryInterceptorAttribute w metodzie dodaje do niej adnotację jako przechwytywanie zapytań w określonym zestawie jednostek.

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
QueryInterceptorAttribute
Atrybuty

Przykłady

Poniższy przykład kontroluje dostęp do Customers zestawu jednostek. Każdy z nich Customer może zobaczyć Orders tylko skojarzone 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ą deweloperom usług infrastrukturę wymaganą 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 być oznaczona adnotacją z QueryInterceptorAttributeparametrem , 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

Nazwa Opis
QueryInterceptorAttribute(String)

Inicjuje QueryInterceptorAttribute nowe wystąpienie klasy dla zestawu jednostek określonego entitySetName przez parametr .

Właściwości

Nazwa Opis
EntitySetName

Pobiera nazwę zestawu jednostek, który zawiera jednostkę, do której stosuje się przechwytywanie.

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attribute.

(Odziedziczone po Attribute)

Metody

Nazwa Opis
Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca kod skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

Po zastąpieniu w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po zastąpieniu 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 Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

Nazwa Opis
_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 obiektu, którego można użyć do uzyskania 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)

Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy