QueryInterceptorAttribute Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
- 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 |
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) |