Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

QueryInterceptorAttribute-Klasse

Das QueryInterceptorAttribute in einer Methode kennzeichnet diese als Abfrageinterceptor im angegebenen Entitätssatz.

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

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

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

Der QueryInterceptorAttribute-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeQueryInterceptorAttributeInitialisiert eine neue Instanz der QueryInterceptorAttribute-Klasse für den Entitätssatz, der vom entitySetName-Parameter angegeben wird.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftEntitySetNameRuft den Namen des Entitätssatzes ab, der die Entität enthält, für die der Interceptor gilt.
Öffentliche EigenschaftTypeId Bei Implementierung in einer abgeleiteten Klasse wird ein eindeutiger Bezeichner für dieses Attribute abgerufen. (Von Attribute geerbt.)
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeEqualsInfrastruktur. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. (Von Attribute geerbt.)
Öffentliche MethodeGetHashCodeGibt den Hashcode für diese Instanz zurück. (Von Attribute geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeIsDefaultAttributeBeim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Von Attribute geerbt.)
Öffentliche MethodeMatchBeim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute geerbt.)
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetIDsOfNamesOrdnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoRuft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.GetTypeInfoCountRuft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode_Attribute.InvokeStellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.)
Zum Seitenanfang

Die Autorisierung und Validierung auf der Ressourcenebene wird von Methoden implementiert, die mit dem QueryInterceptorAttribute versehen wurden. WCF Data Servicess implementiert keine Sicherheitsrichtlinien. Stattdessen wird die erforderliche Infrastruktur für die Entwickler von Diensten zum Erstellen eigener Sicherheitsregeln und Validierungen auf Geschäftsebene bereitgestellt.

Die Zugriffssteuerungen und Validierung für Entitätssätze wird durch Abfragevorgänge und das Zusammensetzen von Abfragen aktiviert. Implementieren Sie entitätsspezifische Methoden gemäß den folgenden Regeln, um den entitätsspezifischen Zugriff zu steuern:

Die Methode muss einen öffentlichen Bereich aufweisen und mit dem QueryInterceptorAttribute versehen sein; außerdem sollte der Name des Entitätssatzes als Parameter angenommen werden.

Die Methode darf keine Parameter akzeptieren.

Die Methode muss einen Ausdruck vom Typ Expression<Func<T, bool>> zurückgeben, der den Filter darstellt, der für den Entitätssatz erstellt.

Im folgenden Beispiel wird der Zugriff auf den Customers-Entitätssatz kontrolliert. Jeder Customer kann nur die Orders sehen, die diesem Customer zugeordnet sind.

[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

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft