Compartilhar via


Trimmer de segurança Catálogo de dados comerciais

Consulta Pesquisa da empresa no Microsoft Office do SharePoint Server 2007 osssearch12 na Microsoft Office SharePoint Server 2007 executa - aparando segurança tempo de pesquisa resulta usando as informações de segurança obtidas no tempo rastrear. No entanto, pode haver situações em que isso pode não ser suficiente, de exemplo, quando aplicativos back-end não podem fornecer informações de segurança no tempo rastrear ou quando você precisar atualizado informações de segurança e ele não é prático para rastrear cada tempo. Para esse cenário, o mecanismo Enterprise Search Query Processing fornece uma estrutura para conectando em dinâmico endereço consulta tempo segurança aparando módulos onde os resultados específicos de consulta um único usuário podem ser cortada-Segurança antes seja exibida nos resultados da pesquisa.

The Business Data Catalog implements the CheckAccess interface to provide built-in support for per-entity instance security trimming, or entity instance-level security.

O Trimmer de segurança Catálogo dados Business permite personalizado aparando segurança instâncias entidade (documentos pesquisa) que tenha sido indexadas pela Business Data Catalog antes que eles são retornados para o usuário. Ele apara o conjunto de resultados (contendo instâncias entidade) no tempo de execução com base na atual direitos do usuário os dados back-end, usando a lógica no aplicativo back-end para determinar os direitos de usuário. Presume que o real aplicativo back-end fornecerá um método público para verificar o atual permissões do usuário para um ou mais instâncias entidade. A entrada Parâmetros do método devem aceitar as identificações do EntityInstance objetos a serem verificadas e o parâmetro de saída devem retornar os direitos acessar para o atual usuário como um correspondente matriz de inteiros longos long (ou algum valor que pode ser convertido em um inteiro longo long).

After such an API is available, authors of the Business Data Catalog metadata can define a MethodInstanceType called AccessChecker in the application definition file, and map it to the back-end API in much the same way as for Finder, SpecificFinder, and so on. After an AccessChecker method instance is available, the Business Data Catalog security trimmer can use it to determine the user's rights via the CheckAccess method.

O Trimmer de segurança Catálogo dados Business executa CheckAccess método cada tempo o mecanismo de consulta retorna resultados da pesquisa que correspondem a rastrear regra a trimmer Business Data Catalog de segurança é associado com. Quando o Entity.CheckAccess ENTITY.CheckAccess método for chamado, o Business Data Catalog, por sua vez, executa o API back-end descrito pela instância método AccessChecker AccessChecker registrada para dessa entidade. O API back-end retorna os direitos a atual usuário tem na entidade instância ou Instâncias. Isso é retransmitido voltar para o Entity.CheckAccess método ENTITY.CheckAccess, e finalmente para trimmer de segurança, que usa este informações para aparar os resultados antes de exibir os resultados para o usuário.

Detalhes internos

The Business Data Catalog Security Trimmer maps the Microsoft.Office.Server.Search.Query.ISecurityTrimmer.CheckAccess(System.Collections.Generic.IList{System.String},System.Collections.Generic.IDictionary{System.String,System.Object}) method to the Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.CheckAccess(System.Object[],Microsoft.Office.Server.ApplicationRegistry.MetadataModel.LobSystemInstance) method by parsing the URLs supplied by the Query processor to the Entity.CheckAccess method after determining the LobSystem object and entities each URL comes from.

No entanto, como ISecurityTrimmer.CheckAccess deve retornar uma matriz de valores "não" ou "sim", e o Entity.CheckAccess ENTITY.CheckAccess método retorna uma matriz de vetores direitos, a Trimmer de segurança Catálogo dados Business fornece uma maneira de converter um vetor direitos em um ' Sim ' ou um não lendo uma propriedade especial em chamado o objeto da entidade DisplaySearchResultRightsMaskPropertyName.

Finalmente, a Trimmer de segurança Catálogo dados Business tenta limite o número de acessar verifica ele executa para chamar um único para o modelo objeto Search Query. De exemplo, se o índice contém um milhão de documentos e há uma comum palavra-chave única para todos os documentos e o usuário executa tal uma consulta, e usuário tem acessar apenas para o documento millionth e não para todos os outros, o processador consulta continua chamado Entity.CheckAccess até que todos os documentos são testados. Isso pode levar um longo tempo. Portanto, o trimmer Business Data Catalog controla quantas documentos são verificados no via um personalizado configurável limite (usar como padrão é 100). Se o limite for excedido, ele gera uma exceção que é exibida como uma mensagem para o usuário final solicitando que a consulta ser reduzida no escopo.

Consulte também

Outros recursos

Walkthrough: usando a Trimmer de segurança Catálogo DE DADOS Business para aparar resultados da pesquisa
Exemplos AccessChecker