QueryInterceptorAttribute Klas

Definitie

De QueryInterceptorAttribute methode op een methode annotateert deze als een query-interceptor op de opgegeven entiteitsset.

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
Overname
QueryInterceptorAttribute
Kenmerken

Voorbeelden

In het volgende voorbeeld wordt de toegang tot de Customers entiteitsset bepaald. Elk Customer kan alleen Orders gekoppeld aan die 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  
              );  
}  

Opmerkingen

Autorisatie en validatie op entiteitsniveau worden geïmplementeerd door methoden die zijn geannoteerd met de QueryInterceptorAttribute. WCF-gegevensservices implementeren geen beveiligingsbeleid, maar bieden in plaats daarvan de infrastructuur die serviceontwikkelaars nodig hebben om hun eigen beveiligingsregels en bedrijfsvalidatie te schrijven.

Toegangsbeheer en validatie van entiteitssets wordt ingeschakeld via querybewerkingen met behulp van querysamenstelling. Als u toegang op basis van entiteiten wilt beheren, implementeert u een methode per entiteitsset volgens de volgende regels:

De methode moet een openbaar bereik hebben en worden voorzien van aantekeningen met de QueryInterceptorAttributenaam van een entiteitsset als parameter.

De methode mag geen parameters accepteren.

De methode moet een expressie van het type Expression<Func<T, bool>> retourneren dat het filter is dat moet worden samengesteld voor de entiteitsset.

Constructors

Name Description
QueryInterceptorAttribute(String)

Initialiseert een nieuw exemplaar van de QueryInterceptorAttribute klasse voor de entiteitsset die is opgegeven door de entitySetName parameter.

Eigenschappen

Name Description
EntitySetName

Hiermee haalt u de naam op van de entiteitsset die de entiteit bevat waarop de interceptor van toepassing is.

TypeId

Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id.

(Overgenomen van Attribute)

Methoden

Name Description
Equals(Object)

Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
GetHashCode()

Retourneert de hash-code voor dit exemplaar.

(Overgenomen van Attribute)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsDefaultAttribute()

Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse.

(Overgenomen van Attribute)
Match(Object)

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

Name Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van Attribute)

Van toepassing op