Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

QueryInterceptorAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Die QueryInterceptorAttribute für eine Methode kommentiert er als einen Abfrage-Interceptor für die angegebene Entitätenmenge.

Namespace:   System.Data.Services
Assembly:  System.Data.Services (in System.Data.Services.dll)

System.Object
  System.Attribute
    System.Data.Services.QueryInterceptorAttribute

[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = true, 
	Inherited = true)]
public sealed class QueryInterceptorAttribute : Attribute

NameBeschreibung
System_CAPS_pubmethodQueryInterceptorAttribute(String)

Initialisiert eine neue Instanz der der QueryInterceptorAttribute -Klasse für die angegebene Entitätenmenge der entitySetName Parameter.

NameBeschreibung
System_CAPS_pubpropertyEntitySetName

Ruft den Namen der Entitätenmenge, die die Entität enthält, für die der Interceptor gilt.

System_CAPS_pubpropertyTypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.(Geerbt von „Attribute“.)

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Diese API unterstützt die Produkt Infrastruktur und sollte nicht direkt aus dem Code verwendet werden. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetHashCode()

Gibt den Hashcode für diese Instanz zurück.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodIsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodMatch(Object)

Ruft beim Überschreiben in einer abgeleiteten Klasse gibt einen Wert, der angibt, ob diese Instanz gleich ein angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „Attribute“.)

Entität Autorisierung und Überprüfung von Methoden mit implementiert die QueryInterceptorAttribute.WCF Data Servicess implementiert keine Sicherheitsrichtlinien aber stattdessen bieten die erforderliche Infrastruktur für Dienstentwickler ihre eigenen Sicherheitsregeln und Business-Überprüfung zu schreiben.

Entitätenmenge Zugriffskontrolle und Validierung mithilfe von Abfragen über Abfrageoperationen aktiviert ist. Implementieren Sie eine Methode-pro-Entitätenmenge gemäß den folgenden Regeln zur Steuerung des Zugriffs entitätsbasierten:

Die Methode muss einen öffentlichen Bereich aufweisen und mit kommentiert werden die QueryInterceptorAttribute, dass der Name einer Entität als Parameter festgelegt.

Die Methode darf keine Parameter akzeptieren.

Die Methode muss einen Ausdruck vom Typ zurückgeben Expression<Func<T, bool>> den Filter für die Entitätenmenge verfasst werden.

Das folgende Beispiel steuert den Zugriff auf die Customers Entitätenmenge. Jede Customer sehen nur Orders zugeordnet sind, 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
              );
}

.NET Framework
Verfügbar seit 3.5

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: