Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

QueryInterceptorAttribute (Clase)

 

El QueryInterceptorAttribute de un método anota dicho método como un interceptor de consulta en el conjunto de entidades especificado.

Espacio de nombres:   System.Data.Services
Ensamblado:  System.Data.Services (en System.Data.Services.dll)

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

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

NombreDescripción
System_CAPS_pubmethodQueryInterceptorAttribute(String)

Inicializa una nueva instancia de la clase QueryInterceptorAttribute para el conjunto de entidades especificado por el parámetro entitySetName.

NombreDescripción
System_CAPS_pubpropertyEntitySetName

Obtiene el nombre del conjunto de entidades que contiene la entidad a la que se aplica el interceptor.

System_CAPS_pubpropertyTypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.(Heredado de Attribute.)

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Esta API admite la infraestructura de product y no está pensada para usarse directamente desde su código. Devuelve un valor que indica si esta instancia equivale al objeto especificado. (Heredado de Attribute.)

System_CAPS_pubmethodGetHashCode()

Devuelve el código hash de esta instancia.(Heredado de Attribute.)

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual. (Heredado de Object.)

System_CAPS_pubmethodIsDefaultAttribute()

Cuando se invalida en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada.(Heredado de Attribute.)

System_CAPS_pubmethodMatch(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual al objeto especificado. (Heredado de Attribute.)

System_CAPS_pubmethodToString()

Retorna una cadena que representa al objeto actual. (Heredado de Object.)

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.(Heredado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información del tipo de un objeto, que puede utilizarse para obtener la información del tipo de una interfaz. (Heredado de Attribute.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de tipo de información que suministra un objeto (0 ó 1)

(Heredado de Attribute.)

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

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.(Heredado de Attribute.)

La autorización y validación en el conjunto de entidades la llevan a cabo los métodos anotados con QueryInterceptorAttribute.Los Servicios de datos de WCF no implementan directivas de seguridad, pero proporcionan la infraestructura necesaria para que los desarrolladores de servicios escriban sus propias reglas de seguridad y validación empresarial.

La validación y el control de acceso a conjuntos de entidades se habilitan a través de operaciones de consulta utilizando la composición de consultas.Para controlar el acceso basado en entidades, implemente un método por entidad establecido conforme a las reglas siguientes:

El método debe tener un ámbito público y estar anotado con QueryInterceptorAttribute, tomando el nombre de un conjunto de entidades como parámetro.

El método no debe aceptar ningún parámetro.

El método debe devolver una expresión de tipo Expression<Func<T, bool>>, que es el filtro que debe crearse para el conjunto de entidades.

En el ejemplo siguiente se controla el acceso al conjunto de entidades Customers.Cada cliente (Customer) solo puede ver los pedidos (Orders) asociados a ese cliente.

[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
Disponible desde 3.5

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Volver al principio
Mostrar: