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
Visual Studio, no menu Arquivo , apontar para nova e, em seguida, clique em Project .
Em , C# , clique em Tipos Project Windows .
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
O menu do projeto, clique em Adicionar Referência .
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
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.
O menu **** do projeto, clique em Add New Item .
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
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;
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
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.
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. }
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;
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; }
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
Em Visual Studio 2005, o menu do projeto, clique em propriedades CustomSecurityTrimmerSample .
Em assinatura , selecione entrar o assembly .
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.
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