Compartilhar via


Etapa 1: Criar a Trimmer de segurança personalizado

Esta explicação passo a passo descreve como criar, implantar e registrar um personalizado trimmer de segurança para Pesquisa da empresa no Microsoft Office do SharePoint Server 2007 usando Microsoft Visual Studio 2005.

Etapa 1 descreve como criar o personalizado trimmer de segurança e inclui o seguinte tarefas:

  • Configurando o personalizado projeto trimmer de segurança

  • Codificação de personalizado trimmer de segurança

  • Compilando o personalizado de segurança projeto trimmer com um nome forte

Configurando o projeto Trimmer de segurança personalizado

Para criar o projeto para o personalizado trimmer de segurança

  1. Visual Studio, no menu Arquivo , apontar para nova e, em seguida, clique em Project .

  2. Em , C# , clique em Tipos Project Windows .

  3. Em modelos , selecione da biblioteca de classes . No campo nome, tipo CustomSecurityTrimmerSample e, em seguida, clique OK .

Em seguida você deve adicionar o exigido referências ao seu projeto Web Part.

Para adicionar referências para o projeto CustomSecurityTrimmerSample

  1. O menu do projeto, clique em Adicionar Referência .

  2. Na guia .NET, selecione a seguinte referência e, em seguida, clique OK:

    • Microsoft.Office.Server.Search

Dica

Se o site do SharePoint estiver configurado para usar autenticação de formulários, para acessar o nome usuário você deverá usar o HttpContext HttpContext classe, portanto, você deve também adicionar uma referência aqui system.web .

Antes de adicionar codificar para trimmer de segurança, substituir o arquivo classe usar como padrão com um novo arquivo classe.

Para criar o arquivo classe para a trimmer de segurança

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse Class1.cs e, em seguida, clique em para excluir remover a classe usar como padrão criado com o projeto.

  2. O menu **** do projeto, clique em Add New Item .

  3. In the Add New Item dialog box, click Class, type CustomSecurityTrimmer.cs, and then click Add.

Escrever o código Trimmer de segurança personalizado

Para modificar a codificar usar como padrão em CustomSecurityTrimmer

  1. Adicione o seguinte using instruções perto de parte superior da codificar Using com as outras diretivas de espaço para nome.

    using System.Collections;
    using System.Collections.Specialized;
    using System.Security.Principal;
    using Microsoft.Office.Server.Search.Query;
    using Microsoft.Office.Server.Search.Administration;
    
  2. Especifica que o CustomSecurityTrimmer CustomSecurityTrimmer classe implementa a interface ISecurityTrimmer T:Microsoft.Office.Server.Search.Query.ISecurityTrimmer no declaração de classe, da seguinte maneira.

    public class CustomSecurityTrimmer : ISecurityTrimmer
    

Você está pronto gravar a codificar para implementar os métodos interface ISecurityTrimmer T:Microsoft.Office.Server.Search.Query.ISecurityTrimmer.

Para implementar os métodos interface ISecurityTrimmer

  1. Adicione o seguinte codificar para o Initialize M:Microsoft.Office.Server.Search.Query.ISecurityTrimmer.Initialize método declaração.

    public void Initialize(NameValueCollection trimmerProps, SearchContext searchCxt)
    {
    
    }
    

    A versão básica desse exemplo não inclui qualquer codificar no Initialize de inicialização. O Initialize inicializar no Etapa 3 (opcional): especifica um limite configuráveis em número de URLs de rastreamento selecionado contém uma implementação exemplo.

    Para obter mais informações sobre como implementar o Initialize método Initialize, consulte Trimming de segurança personalizado para Visão geral de resultados de pesquisa da empresa.

  2. Adicione o seguinte codificar para o CheckAccess M:Microsoft.Office.Server.Search.Query.ISecurityTrimmer.CheckAccess método declaração.

    public BitArray CheckAccess(IList<String> crawlURLs,IDictionary<String,Object> sessionProperties)
    {
    //CheckAccess method implementation, see steps 3-5.
    }
    
  3. Para a primeira parte da implementação método CheckAccess CheckAccess, declarar e inicializar uma variável BitArray BitArray para armazenar os resultados do caixa de seleção de acesso para cada URL na coleção crawlURLs crawlURLs e recuperar nome de usuário para o usuário que enviou a consulta, as follows.

    BitArray retArray = new BitArray(crawlURLs.Count);
    //For Windows authentication, uncomment the next line:
    //string strUser = WindowsIdentity.GetCurrent().Name;
    //For Forms authentication, uncomment the next line:
    //string strUser = HttpContext.Current.User.Identity.Name;
    
  4. Efetuar loop por cada rastrear URL na coleção e executar o caixa de seleção de acesso para determinar se o usuário que enviou a consulta pode acessar a rastrear associado do URL de conteúdo item.

    If the user has access to the content item, set the value of the BitArray item at that index, retArray[x], to true; otherwise, set it to false, as follows.

    for (int x = 0; x < crawlURLs.Count; x++)
    {
    /*
    To fully implement the security trimmer, add code to perform the security check and determine if strUser can access crawlURLs[x]. 
    If strUser can access crawlURL[x], then:
    */
    
    retArray[x] = true;
    //If not:
    retArray[x] = false;
    }
    
  5. Defina o valor de retorno do CheckAccess método CheckAccess como retArray, da seguinte maneira.

    return retArray;
    

Compilar o projeto Trimmer de segurança personalizado com um nome de alta segurança

A compilação de personalizado projeto trimmer de segurança com um nome forte

  1. Em Visual Studio 2005, o menu do projeto, clique em propriedades CustomSecurityTrimmerSample .

  2. Em assinatura , selecione entrar o assembly .

  3. Em escolher uma chave nome forte arquivo , selecione nova . Em chave arquivo nome , tipo um nome para sua chave arquivo e em seguida, clique OK .

    Dica

    Se você tiver uma chave existente arquivo para usar, selecione Procurar INSTEAD OF nova para esta etapa e localizar a arquivo existente.

  4. O menu criação, clique em Solução de Compilação .

As seguinte etapas

Em Etapa 2: implantar e registrar a Trimmer de segurança personalizado, você irá implantar e registrar o personalizado trimmer de segurança.

Etapa 3 (opcional): especifica um limite configuráveis em número de URLs de rastreamento selecionado contém uma versão modificada do personalizado classe trimmer de segurança que mostra como para implementar um configurável limite sobre o número de itens verificados pelo personalizado trimmer de segurança.

Exemplo

Este é o completo codificar exemplo para o CustomSecurityTrimmerSample CustomSecurityTrimmerSample, descrito esta etapa.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server.Search.Query;
using Microsoft.Office.Server.Search.Administration;
//For Windows Authentication
using System.Security.Principal;
//For Forms Authenticaion
using System.Web;
using System.Collections.Specialized;
using System.Collections;

namespace CustomSecurityTrimmerSample
{
    class CustomSecurityTrimmer : ISecurityTrimmer
    {
        public void Initialize(NameValueCollection trimmerProps, SearchContext searchCxt)
        {
        }

        public BitArray CheckAccess(IList<String> crawlURLs, IDictionary<String, Object> sessionProperties)
        {
            BitArray retArray = new BitArray(crawlURLs.Count);
            
        //For Windows authentication, uncomment the next line:
            //string strUser = WindowsIdentity.GetCurrent().Name;
        //For Forms authentication, uncomment the next line:
           //string strUser = HttpContext.Current.User.Identity.Name;

            for (int x = 0; x < crawlURLs.Count; x++)
            {
              /*
                To fully implement the security trimmer,
                add code to perform the security check 
                and determine if strUser can access crawlURLs[x].
                If strUser can access crawlURL[x], then:
               */
                retArray[x] = true;
              //If not:
                retArray[x] = false;
            }
            return retArray;
        }
    }
}

Consulte também

Referência

Microsoft.Office.Server.Search.Query.ISecurityTrimmer

Outros recursos

Trimming de segurança personalizado para Visão geral de resultados de pesquisa da empresa
Walkthrough: usando um Trimmer de segurança personalizado para resultados da pesquisa
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