La conexión al servidor SQL debe realizarse con credenciales que este pueda reconocer. Hay varias soluciones posibles dependiendo de tu entorno.
Si no se está impersonando entonces la identidad que se utiliza para realizar la conexión es la del proceso ASP.NET. Esta es usualmente ASP.NET o Network Service que son cuentas locales que *no* tienen credenciales para acceder a recursos remotos. Una posibilidad es configurar el proceso para usar una cuenta de dominio o una cuenta local que también exista en el servidor SQL con el mismo nombre y contraseña. La identidad del proceso se configura en la sección processModel de machine.config para IIS5.x y en las propiedades del application pool para IIS6. Otra posibilidad es impersonar pero en ese caso el proceso ASP.NET de alguna forma debe tener acceso a la contraseña del usuario que impersona. No basta con impersonate="true" sino que también es necesario incluir userName y password. Claro que esto significa que tendrías que encriptar la sección en el web.config. En entornos de medium trust, sin acceso físico al servidor, esto puede ser un problema. Una excepción sería si se habilita el acceso anónimo en IIS y se configura una contraseña conocida para el usuario IUSR_XXXX y no se pemite que IIS controle la misma, o se selecciona un usuario diferente. En ese caso se puede crear un usuario con el mismo nombre y contraseña en la máquina donde se encuentra el SQL Server. Si se cumplen estas condiciones entonces no es necesario incluir el nombre y la clave en el web.config. Si no se habilita el acceso anónimo y se incluye impersonate="true" entonces se estaría impersonando la identidad del usuario que accede al IIS desde su browser. En ese caso el proceso no tiene acceso a la contraseña del usuario y *no* puede acceder a recursos remotos. En un entorno con active directory existe la posibilidad de permitir esto pero requiere configurar lo que se denomina delegación de Kerberos. Finalmente, si el servidor SQL soporta seguridad mixta podrías incluir las credenciales en el string de conexión. Esta solución es simple aunque significa que es necesario encontrar la forma de encriptar la sección correspondiente en el web.config. Saludos, Fernando Tubio ----- Original Message ----- From: Sebastian Iacomuzzi To: puntonet@mug.org.ar Sent: Monday, April 30, 2007 4:11 PM Subject: [puntonet] Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON' es asi! El día 30/04/07, Fernando Tubio <[EMAIL PROTECTED]> escribió: Sospecho que el servidor SQL se encuentra en una máquina diferente al IIS. ¿Es así? Saludos, Fernando Tubio ----- Original Message ----- From: Sebastian Iacomuzzi To: puntonet@mug.org.ar Sent: Monday, April 30, 2007 2:53 PM Subject: [puntonet] Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON' IIS 6 y con impersonate="true" Pasa lo mismo :( El día 30/04/07, Pablo A. Allois < [EMAIL PROTECTED]> escribió: Que servidor es IIS5 o IIS6 ? Win2003 o Win2000 ? Si solo tenes tildado Integrated ... me parece raro que el error diga ANONYMOUS LOGON ... en IIS6 te diria NETWORK Service, Proba de poner el tag idendity impersonate en true y fijate si no se soluciona con eso. Saludos! ------------------------------------------------------------------------ De: puntonet@mug.org.ar [mailto: [EMAIL PROTECTED] En nombre de Sebastian Iacomuzzi Enviado el: Lunes, 30 de Abril de 2007 01:14 p.m. Para: puntonet@mug.org.ar Asunto: [puntonet] Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON' Sin el IIS funciona, de hecho me funcionaba desde Visual Studio. El día 30/04/07, Maxi Accotto <[EMAIL PROTECTED] > escribió: Deberia, pero fijate que le esta tomando anonimo de alguna manera, yo lo que haria en principio es ver de conectar esa misma pc sin el IIS hacia la misma base de datos y servidor con la misma cadena de conexion a ver que da ;) El 30/04/07, Diego Jancic < [EMAIL PROTECTED]> escribió: > Hola Maxi, > Una pregunta, si estuviese en anonimo, no deberia intentar loguear con > IUSR_xxxx (por default)? Siempre se me confunden los usuarios de IIS... :S > > grax!, > Diego > > > On 4/30/07, Maxi Accotto < [EMAIL PROTECTED] > wrote: > > Hola, el IIS esta en modo anonimo, fijate esa configuracion > > > > El 30/04/07, Sebastian Iacomuzzi < [EMAIL PROTECTED]> escribió: > > > > > No se que estoy haciendo mal... > > > > > > En el webconfig tengo: > > > > > > > > > <connectionStrings> > > > <add name="testDB" connectionString ="Integrated Security=SSPI;Initial > > > Catalog=myDatabase;Data Source=myServer" /> > > > </connectionStrings> > > > > > > <system.web> > > > <authentication mode="Windows" /> > > > ... > > > > > > En el IIS, en las propiedades del web site, en Directory Security, solo > > > tengo tildado INTEGRATED WINDOWS AUTHENTICATION > > > Despues de publicarlo, cuando abro el sitio, me tira este error cuando > > > intenta conectarse a la base de datos: > > > > > > Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. > > > > > > Todo sobre ASP.NET 2.0 y SQL 2000. Que me esta faltando? > > > Gracias!! > > > > > > -- > > > ----------------------------------------------------------- > > Microsoft MVP en SQL Server > > Mentor asociado en SQLTotalConsulting > > (excelencia en servicios y consultoria SQLServer) > > Orador Culminis - Microsoft Influencier > > www.sqltotalconsulting.com > > > ----------------------------------------------------------- > > > > > > -- ----------------------------------------------------------- Microsoft MVP en SQL Server Mentor asociado en SQLTotalConsulting (excelencia en servicios y consultoria SQLServer) Orador Culminis - Microsoft Influencier www.sqltotalconsulting.com -----------------------------------------------------------