Cuestión : Página de encargo y personificación de la búsqueda

Hola, el

We ha creado una página de encargo de la búsqueda para SharePoint que toma un username en querystring y después intenta personificar a ese usuario antes de realizar la búsqueda. Hemos configurado la autentificación correcta del Kerberos para permitir la personificación etc. Sin embargo, falla con el error siguiente: el

" un error ocurrió cargando un archivo de configuración: O un nivel required de la personificación no fue proporcionado, o el nivel proporcionado de la personificación es el "

using System.Security.Principal;
using Microsoft.Office.Server.Search.Query;


.....…/>name = “[email protected]”;
WindowsIdentity identificación = nuevo WindowsIdentity (nombre);
WindowsPrincipal p = nuevo WindowsPrincipal (identificación); el

//personifica el temporarily
WindowsImpersonationContext wic = identificación. Personificar ();

try
{siteCollection del
SPSite = nuevo SPSite (“rel= " nofollow " del _blank” del” target=” de http://intranet.demo.com/sites/searchsitecollection del href= " del mo.com/sit de http://intranet.de/>es/searchsitecollection"); queryText de la secuencia del
= “hola mundo”; Pregunta de la secuencia del
= String.Format (“SELECTO título, trayectoria DE alcance () DONDE \ “alcance \ “= ' todo el sitio Y CONTIENE (“\” {0} \ “") “, queryText);

FullTextSqlQuery qry = nuevo de FullTextSqlQuery (siteCollection);
qry.ResultTypes = ResultType.RelevantResults;
qry.TrimDuplicates = falso;
qry.KeywordInclusion = KeywordInclusion.AnyKeyword;
qry.QueryText = pregunta;
qry.RowLimit = 200;


    ResultTableCollection resultTbls;resultTbls del

= qry. Ejecutar (); resultsTab del

ResultTable = resultTbls [ResultType.RelevantResults];
mientras que (resultsTab.Read ())
finally
{restablecimiento del
} del
{stuff
del
//Do} del
// nuestro viejo context
de la seguridad wic. Deshacer ();  
del
} class= del

Respuesta : Página de encargo y personificación de la búsqueda

El código abajo es “código del aire” (no probado). Todavía pienso que sería mejor utilizar una pregunta basada en sus tablas reales en vez de Query2, pero en el extremo usted necesita una solución que usted pueda mantener, así que es su llamada.

(°v°)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
    strSQL dévil como secuencia
    varID dévil
    
    el strSQL = “SELECCIONA * del tbl_survey DONDE el survey_year='2010'"
    Con CurrentDb.OpenRecordset (strSQL, dbOpenDynaset)
        Hacer hasta .EOF
            ¡varID = DLookup (“identificación”, “Query2”, “part_rate='52 e ID=” y! Identificación)
            Si no IsNull (varID) entonces
                . Corregir
                ¡! el servicio = verdad
                . Actualización
            Terminar si
            .MoveNext
        Lazo
        . Cierre
    Extremo con
Otras soluciones  
 
programming4us programming4us