Pregunta

Estoy accediendo a mi servidor a través de una conexión de escritorio remota y he configurado un servicio web en IIS. Puedo ver los métodos, pero cuando hago clic en el botón para & Quot; Invocar & Quot; Me sale el siguiente error:

System.Data.SqlClient.SqlException: error de inicio de sesión para el usuario 'SOLDev \ Server02 $'.    en ShareWare.Web.Service.WebAPI.Reservation.GetInfo ()

¿Por qué toma el nombre de la máquina como usuario? Mi usuario de autenticación de Windows es User1Dev. Además, mi seguridad de directorio en IIS se configura de la siguiente manera:

  1. Opción " Habilitar acceso anónimo " - está deshabilitado
  2. Opción " Autenticación de Windows integrada " - marcado

Estoy usando .NET framework 2.0

¿Fue útil?

Solución

Es porque el servicio web se está ejecutando como la identificación del servicio de red, no como el usuario conectado. Probablemente también necesite tener <identity impersonate="true" /> en su configuración web si planea usar las credenciales del usuario para conectarse a SQL Server.

Otros consejos

Su servicio web se conecta al SQL utilizando la autenticación de Windows como el principal que ejecuta el servicio. En este caso, parece ser BUILTIN \ System o BUILTIN \ Network Service, los cuales se autentican en el dominio como la cuenta de la máquina, es decir. 'SOLDEV \ Server02 $' que corresponde a una máquina llamada Server02 en el dominio SOLDEV.

Si desea autenticarse en el SQL Server con su propio inicio de sesión, el IIS debe transmitir la información de autenticación, en un proceso llamado Delegación restringida. Consulte Configuración Delegación restringida para Kerberos (IIS 6.0). o Cómo: Usar Transición de protocolo y delegación restringida en ASP.NET 2.0 .

Si desea que el servicio web se autentique en SQL Server como tal, debe otorgar permiso de inicio de sesión al principal del servicio web en SQL: CREATE LOGIN [SOLDEV\Server02$] FROM WINDOWS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top