QueryInterceptorAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- 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 |
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) |