PRB: Error de acceso denegado al llamar a API LogonUser

Seleccione idioma Seleccione idioma
Id. de artículo: 223334 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

Síntomas

Cuando intenta llamar a la LogonUser aplicación programador Interface (API) Win32 desde dentro de un componente del modelo de objetos componentes (COM) de Microsoft Visual Basic con páginas Active Server (ASP), recibirá uno de los mensajes de error siguientes:
'5' - "Acceso denegado".
-o bien -
'1314' - "El cliente no dispone un privilegio necesario."

Causa

El usuario autenticado de Internet Information Server (IIS) que realiza la solicitud a LogonUser no tiene los privilegios adecuados, lo que hace que LogonUser un error.

Solución

Para resolver este comportamiento, utilice las siguientes API Win32:
  • RevertToSelf
  • LogonUser
  • ImpersonateLoggedOnUser
  1. Llame a RevertToSelf .

    Nota La llamada a LogonUser se perderá si el subproceso que realiza la llamada no tiene el contexto de seguridad correcta. La cuenta del sistema contiene los permisos correctos para llamar correctamente a LogonUser . La llamada a RevertToSelf hará que el subproceso para ejecutarse como la cuenta del sistema si se cumplen las condiciones siguientes:
    • La aplicación Web se ejecuta en proceso.
    • Si el componente COM está bajo control MTS, es un paquete de biblioteca.
  2. Llamar a LogonUser y especifique la cuenta de Microsoft Windows NT que desea que el componente COM para ejecutar como. LogonUser devolverá un identificador en el token de seguridad.
  3. Llame a ImpersonateLoggedOnUser y pase el token de seguridad LogonUser devuelve.

    Nota El componente COM ahora está suplantando al contexto de seguridad de la cuenta de Windows que ha especificado.
  4. Después de finalizar la suplantación, debe volver a llamar a RevertToSelf .

Solución

Si el componente COM está en proceso, puede crear un paquete de Transaction Server (MTS) para el componente de host. El paquete MTS controlará cambiar para el contexto de seguridad. Para obtener más información acerca de cómo crear un paquete vacío y agregar componentes, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
223406Cómo crear un paquete MTS vacío para agregar componentes para ASP

Estado

Este comportamiento es por diseño.

Más información

Para obtener más información y código de ejemplo de suplantación de un usuario desde un páginas Active Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
248187Cómo: Representar a un usuario desde páginas Active Server

Propiedades

Id. de artículo: 223334 - Última revisión: domingo, 23 de febrero de 2014 - Versión: 4.2
La información de este artículo se refiere a:
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Edición de aprendizaje
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Palabras clave: 
kbnosurvey kbarchive kbmt kbcodesnippet kbprb kbsecurity KB223334 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): 223334

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