QueryInterceptorAttribute Classe

Definizione

Il QueryInterceptorAttribute in un metodo lo annota come intercettore di query nel set di entità specificato.

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
Ereditarietà
QueryInterceptorAttribute
Attributi

Esempio

L'esempio seguente controlla l'accesso Customers al set di entità. Ogni Customer oggetto può visualizzare Orders solo associato a tale Customeroggetto .

[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  
              );  
}  

Commenti

L'autorizzazione e la convalida a livello di set di entità vengono implementate dai metodi annotati con .QueryInterceptorAttribute I servizi dati WCF non implementano criteri di sicurezza, ma forniscono invece l'infrastruttura necessaria agli sviluppatori di servizi per scrivere regole di sicurezza e convalida aziendale personalizzate.

Il controllo di accesso e la convalida del set di entità viene abilitato tramite operazioni di query tramite la composizione delle query. Per controllare l'accesso basato su entità, implementare un set di metodi per entità in base alle regole seguenti:

Il metodo deve avere un ambito pubblico e annotare con QueryInterceptorAttribute, prendendo il nome di un set di entità come parametro.

Il metodo non deve accettare parametri.

Il metodo deve restituire un'espressione di tipo Expression<Func<T, bool>> che rappresenta il filtro da comporre per il set di entità.

Costruttori

Nome Descrizione
QueryInterceptorAttribute(String)

Inizializza una nuova istanza della QueryInterceptorAttribute classe per il set di entità specificato dal entitySetName parametro .

Proprietà

Nome Descrizione
EntitySetName

Ottiene il nome del set di entità che contiene l'entità a cui si applica l'intercettore.

TypeId

Se implementato in una classe derivata, ottiene un identificatore univoco per questo Attribute.

(Ereditato da Attribute)

Metodi

Nome Descrizione
Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per questa istanza.

(Ereditato da Attribute)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

Quando sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Esegue il mapping di un set di nomi a un set corrispondente di identificatori dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo per un oggetto, che può essere utilizzato per ottenere le informazioni sul tipo per un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero di interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso alle proprietà e ai metodi esposti da un oggetto .

(Ereditato da Attribute)

Si applica a