REVISIÓN: Mensaje de error "Acceso denegado" cuando intenta tener acceso a servicios de Index Server desde ASP.NET con suplantación habilitada

Seleccione idioma Seleccione idioma
Id. de artículo: 323293 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando busque con Index Server a través de una página ASP.NET, puede recibir el siguiente mensaje de error:
Acceso denegado. Descripción: Se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise la traza de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de excepciones: System.Data.OleDb.OleDbException: acceso denegado.
Este comportamiento se observa sólo si habilita la suplantación para la aplicación Web ASP.NET y el contexto de seguridad en la que el proceso de trabajo ASP.NET (aspnet_wp.exe) se ejecuta es la cuenta ASPNET.

Solución

Información de Service Pack

Para resolver este problema, consiga el Service Pack más reciente para Microsoft Windows 2000. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
260910Cómo obtener el Service Pack más reciente para Windows 2000

Solución

Utilice uno de los métodos siguientes para resolver este problema:
  • Deshabilitar la suplantación para toda la aplicación Web ASP.NET. Ésta es la configuración predeterminada.
  • Deshabilitar la suplantación sólo para la página .aspx determinado que realiza la búsqueda de Index Server. Para ello, agregue una etiqueta <location> al archivo Web.config como sigue:
    <location path="filename.aspx">
    <system.web>
       <identity impersonate="false" />
    </system.web>
    </location>
    					
Si estas soluciones no son aceptables para usted, puede cambiar el contexto de seguridad en la que el proceso de trabajo ASP.NET se ejecuta a la cuenta del sistema. Sin embargo, Microsoft no recomienda que establezca el contexto de seguridad del proceso de trabajo de ASP.NET en la cuenta del sistema porque la cuenta de sistema es una cuenta de administrador con muchos privilegios en el equipo de servidor Web. Utilice esta solución sólo si ninguna de las soluciones temporales le resultan aceptable.

Para cambiar el contexto de seguridad en la que se ejecuta el proceso de trabajo de ASP.NET, establezca el atributo userName como SYSTEM y, a continuación, establecer el atributo contraseña autogenerate , en el <processmodel> sección del archivo Machine.config. El archivo Machine.config se encuentra en la carpeta de \Microsoft.Net\Framework\v1.0.3705\Config C:\ Windows Directory.

Estado

Microsoft ha confirmado que se trata de un error de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".Este error se corrigió en ASP.NET (incluido con .NET Framework) 1.1. Microsoft ha confirmado que se trata de un problema de Microsoft Windows 2000. Este problema se corrigió por primera vez en el Service Pack 4 de Microsoft Windows 2000.

Más información

Pasos para reproducir el comportamiento

  1. Inicie Microsoft Visual Studio NET..
  2. Crear una aplicación Web ASP.NET.
  3. Agregue el código siguiente en el código HTML de una página .aspx:
    <%@ Page language="c#" %>
    <%
                System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection("provider=msidxs;");
    
                conn.Open();
    
                string Sql = "Select DocTitle, vpath, characterization, rank from Scope(' DEEP TRAVERSAL OF \"C:\\\" ')  where FREETEXT(' \"ticket\" ') order by rank desc";
    
                System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(Sql, conn);
    
                System.Data.DataSet ds = new System.Data.DataSet();
    
                da.Fill(ds, "SearchResults");
                Response.Write("Search Results: <br>");
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
    
                {
    
                            Response.Write("<br>" + ds.Tables[0].Rows[i]["vpath"].ToString());
    
                }
    
    %>
    					
  4. Modificar el archivo Web.config para habilitar la suplantación como sigue:
    <identity impersonate="true" />
    					
  5. Asegúrese de que el contexto de seguridad en la que el proceso de trabajo Aspnet_wp.exe se ejecuta es la cuenta ASPNET. Para ello, establezca el atributo userName en equipo y, a continuación, establecer el atributo contraseña autogenerate , en el <processmodel> sección del archivo Machine.config.

    Nota De forma predeterminada, está configurado el proceso de trabajo de ASP.NET para ejecutarse bajo el contexto de seguridad de la cuenta ASPNET restringido.
  6. Inicie el servicio de Index Server en el equipo.
  7. Generar la aplicación y, a continuación, abra la página .aspx en el explorador. Observe que recibe el mensaje de error enumerados en la sección "Síntomas".

Referencias

Para obtener más información sobre la suplantación en ASP.NET, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
306158Cómo implementar la representación en una aplicación ASP.NET
Para obtener más información acerca de la identidad del proceso de trabajo ASP.NET, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
317012Identidad de proceso y solicitud en ASP.NET

Propiedades

Id. de artículo: 323293 - Última revisión: miércoles, 05 de julio de 2006 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft ASP.NET 1.0
  • Microsoft Index Server 2.0
  • Microsoft OLE DB Provider for Index Server 3.0
Palabras clave: 
kbmt kbhotfixserver kbqfe kbwin2ksp4fix kbother kbfix kbbug kbconfig kbnofix kbsecurity KB323293 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 323293
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com