QueryInterceptorAttribute Classe

Definição

O QueryInterceptorAttribute em um método o anota como um interceptador de consulta no conjunto de entidades especificado.

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
Herança
QueryInterceptorAttribute
Atributos

Exemplos

O exemplo a seguir controla o Customers acesso ao conjunto de entidades. Cada Customer um só pode ver Orders associado a isso 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  
              );  
}  

Comentários

A autorização e a validação de nível de conjunto de entidades são implementadas por métodos anotados com o QueryInterceptorAttribute. Os Serviços de Dados do WCF não implementam políticas de segurança, mas fornecem a infraestrutura necessária para que os desenvolvedores de serviços escrevam suas próprias regras de segurança e validação de negócios.

O controle de acesso e a validação do conjunto de entidades são habilitados por meio de operações de consulta usando a composição de consulta. Para controlar o acesso baseado em entidade, implemente um conjunto de métodos por entidade de acordo com as seguintes regras:

O método deve ter escopo público e ser anotado com o QueryInterceptorAttributenome de uma entidade definida como um parâmetro.

O método não deve aceitar parâmetros.

O método deve retornar uma expressão do tipo Expression<Func<T, bool>> que é o filtro a ser composto para o conjunto de entidades.

Construtores

Nome Description
QueryInterceptorAttribute(String)

Inicializa uma nova instância da QueryInterceptorAttribute classe para o conjunto de entidades especificado pelo entitySetName parâmetro.

Propriedades

Nome Description
EntitySetName

Obtém o nome do conjunto de entidades que contém a entidade à qual o interceptador se aplica.

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para esse Attribute.

(Herdado de Attribute)

Métodos

Nome Description
Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Devolve o código hash para esta instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo de um objeto, que podem ser usadas para obter as informações de tipo de uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a