Trimming de segurança personalizado para Visão geral de resultados de pesquisa da empresa
Pesquisa da empresa no Microsoft Office do SharePoint Server 2007 executa aparando de segurança de resultados da pesquisa na consulta tempo. Os resultados são cortados com base na identidade do usuário enviar a consulta, usando as informações de segurança obtidas o pesquisador. Para obter mais informações sobre como isso funciona, consulte Modelo de segurança da empresa de pesquisa.
Você pode ter determinadas situações, no entanto, no qual o interno segurança aparando resultados não são suficientes para suas necessidades e você precisará implementar personalizado aparando de segurança. Pesquisar da empresa fornece suporte para personalizado aparando segurança por meio de interface ISecurityTrimmer T:Microsoft.Office.Server.Search.Query.ISecurityTrimmer.
Este tópico fornece informações sobre a interface ISecurityTrimmer T:Microsoft.Office.Server.Search.Query.ISecurityTrimmer e descreve o seguinte três etapas exigido para usar um personalizado trimmer de segurança para Pesquisar da empresa:
Implementando a interface ISecurityTrimmer ISecurityTrimmer
Implantando o personalizado trimmer de segurança
Registrando o personalizado trimmer de segurança
Implementando a interface ISecurityTrimmer
Para criar um personalizado de segurança trimmer para osssearchshort Pesquisar da empresa resultados, você deve criar um componente que implementa a interface ISecurityTrimmer T:Microsoft.Office.Server.Search.Query.ISecurityTrimmer. Essa interface é parte do espaço para nome do Microsoft.Office.Server.Search.Query, localizado no Microsoft.Office.Server.Search.dll.
The ISecurityTrimmer interface contains two methods that you must implement: Initialize and CheckAccess.
Inicializar método
O Initialize Initialize é executado quando o trimmer de segurança é carregado no processo de de trabalho e não executar novamente até que o processo de trabalho é reciclado. Dois parâmetros são passados para o método, uma System.Collections.Specialized.NameValueCollection System.Collections.Specialized.NameValueCollection objeto contendo propriedades de configuração especificadas para o trimmer de segurança e um objeto SearchContext T:Microsoft.Office.Server.Search.Administration.SearchContext que representa o serviço pesquisa do Shared Services Provider (SSP).
Você especificar as propriedades de configuração quando você registrar o personalizado trimmer de segurança (discutida posteriormente neste tópico).
Você pode acessar um individual propriedade configuração usando o propriedade nome especificado quando a trimmer de segurança foi registrado. De exemplo, a seguinte codificar recupera o valor para um configuração propriedade nomeado CheckLimit.
public void Initialize(NameValueCollection trimmerProperties, SearchContext srchContext)
{
int intCheckLimit = Convert.ToInt32(trimmerProperties["CheckLimit"]);
}
Para um amostra de código que mostra uma implementação do Initialize método Initialize, consulte Etapa 1: Criar a Trimmer de segurança personalizado e Etapa 3 (opcional): especifica um limite configuráveis em número de URLs de rastreamento selecionado em Walkthrough: usando um Trimmer de segurança personalizado para resultados da pesquisa.
Método CheckAccess
O CheckAccess método CheckAccess é executado at least uma vez cada tempo uma consulta pesquisa retorna resultados que correspondem à regra rastrear associado com a trimmer de segurança.
Dica
O CheckAccess método CheckAccess pode executar múltiplo horas para um consulta de pesquisa, depending on o número de resultados que são passados para o trimmer de segurança.
Dois parâmetros são passados para este método: um objeto System.Collections.Generic.IList System.Collections.Generic.IList contendo as URLs para cada de conteúdo item de resultados de pesquisa que correspondem à regra rastrear e um objeto System.Collections.Generic.IDictionnary que implementadores podem usar para controlar informações entre múltiplo CheckAccess método CheckAccess chama para a mesma consulta pesquisa.
O CheckAccess método CheckAccess retorna um objeto que representa uma matriz de valores False System.Collections.BitArray, uma para cada de conteúdo ou true false URL no objeto IList IList que é passado como o primeiro parâmetro do método item. O mecanismo de consulta usa esses valores para executar o aparando Segurança dos resultados. Se true True, o item está incluído nos resultados retornados; Se false, o item for removido.
Ao implementar o CheckAccess método CheckAccess, você pode usar dois pedaços de informações para cada item para determinar se deve retornar true ou false para o item: A identidade do usuário que enviou a consulta e o URL do de conteúdo item.
Recuperando a identidade do usuário
Você pode recuperar a identidade do usuário que enviou a consulta de duas maneiras, depending on de autenticação que está configurada para o site do SharePoint.
Se o site está configurado para usar autenticação Windows, a seguinte codificar recupera o nome usuário.
string strUser = WindowsIdentity.GetCurrent().Name;
Você também deve incluir a seguinte diretiva de espaço para nome.
using System.Security.Principal;
Se o site está configurado para usar formulários ou personalizado autenticação, a seguinte codificar recupera o nome usuário.
string strUser = HttpContext.Current.User.Identity.Name;
Você também deve incluir a seguinte diretiva de espaço para nome.
using System.Web;
Dica
Você também precisará ter uma referência em seu projeto para System.Web.
Para um amostra de código que mostra uma implementação básica do CheckAccess método CheckAccess, consulte Etapa 1: Criar a Trimmer de segurança personalizado em Walkthrough: usando um Trimmer de segurança personalizado para resultados da pesquisa.
Implicações de desempenho
Um personalizado trimmer de segurança terão impacto sobre desempenho do mecanismo de consulta, portanto, você deve usar um personalizado trimmer somente se a funcionalidade aparando de segurança incluída Pesquisar da empresa não atender às suas necessidades.
Se você precisar usar um personalizado trimmer de segurança, recomendamos que você implementar um limite sobre o número de acessar verifica o trimmer executa para uma única consulta. Por exemplo, considere a possibilidade um cenário onde o de conteúdo índice contém um milhão de documentos e não há um palavra-chave comum a todos os documentos. Um usuário executa uma consulta no de conteúdo índice, mas esse usuário tem acessar apenas para o documento millionth, não para os outros. Sem um limite para o número de cheques acessar, o CheckAccess método CheckAccess é chamado repetidamente até que o documento que o usuário tem para acessar finalmente é retornado. Neste cenário, desempenho seria muito melhor se o número de cheques acessar eram limitado ? de exemplo, para 200 verifica ? e, em seguida, acessar verificações foram interrompidas e uma mensagem foi retornada para o usuário solicitando que o usuário refinar sua consulta para obter melhores resultados.
Para fazer isso, você controlar o número de itens marcados e então lançar um PluggableAccessCheckException T:Microsoft.Office.Server.Search.Query.PluggableAccessCheckException exceção. O PluggableAccessCheckException T:Microsoft.Office.Server.Search.Query.PluggableAccessCheckException classe fornece um construtor com um parâmetro no qual você pode especificar um seqüência de caracteres contendo uma mensagem para o usuário. O mecanismo de consulta, em seguida, retorna esse texto em vez de quaisquer resultados como uma resposta para a consulta pesquisa.
Etapa 3 (opcional): especifica um limite configuráveis em número de URLs de rastreamento selecionado em Walkthrough: usando um Trimmer de segurança personalizado para resultados da pesquisa contém um exemplo que demonstra uma maneira você pode implementar isso.
Implantando o componente Trimmer de segurança personalizado
Depois de criar o personalizado trimmer de segurança, você deve implantá-lo para o cache global de assemblies em qualquer servidor na função de consulta. Etapa 2: implantar e registrar a Trimmer de segurança personalizado descreve etapas para como você pode implantar o personalizado trimmer de segurança para o cache global de assemblies.
Registrando o Trimmer de segurança personalizado
É um registro trimmer de segurança associado com uma regra específica SSP e rastrear. Se você desejar usar o trimmer de segurança com múltiplo SSPs, você deve registrar a trimmer de segurança para cada SSP, bem como ele se registrar para cada regra rastrear é associado com.
Usar o utilitário stsadm para registrar a trimmer de segurança, especificando a operação **** registersecuritytrimmer. A seguinte tabela descreve os parâmetros que leva a operação.
Parâmetro | Descrição |
---|---|
ssp |
Necessário. O nome do SSP; de exemplo, SharedServices1. |
id |
Necessário. O ID. trimmer de segurança Esse valor é exclusivo; Se um trimmer de segurança é registrado com uma identificação que já está registrada para outro trimmer de segurança, o registro para a primeira trimmer será substituído com o registro para o segundo trimmer. |
typeName |
Necessário. O nome forte do personalizado assembly trimmer de segurança. |
rulepath |
Necessário. A regra rastrear para o trimmer de segurança. |
configprops |
Opcional. O nome - valor pares especificando as propriedades de configuração. Deve estar no seguinte formato: Nome1 ~ valor1 ~ Nome2 ~ valor ~ … |
Um exemplo de um comando básico para registrar um personalizado trimmer de segurança é mostrada na Etapa 2: implantar e registrar a Trimmer de segurança personalizado. Etapa 3 (opcional): especifica um limite configuráveis em número de URLs de rastreamento selecionado fornece um exemplo que especifica propriedades configuração para o trimmer de segurança.
Consulte também
Outros recursos
Modelo de segurança da empresa de pesquisa
Walkthrough: usando um Trimmer de segurança personalizado para resultados da pesquisa