Error 401 en el momento de realizar la autentificación en el WS con las credentials correctas.
WS service en Asp.Net, server en Win 2003
Si se realiza la conexión desde una máquina remota con Win XP no hay problemas, las credentials son correctas y nos logamos sin problema.
Si se realiza la conexión desde el propio server 2003 ERROR!!
Este es el caso que ayer tuve en mis manos, y que después de documentarme acabe encontrando la sencilla solución, pero que costo de encontrar.
El web.config del WS ha de ser el siguiente:
<authentication mode="Windows">
<authorization>
<allow users=""domian\user">
<deny users="?">
</deny>
</allow>
</authorization>
El codigo:
Dim wsService As New com.Service
wsService .Url = <url >
Dim userCredential As System.Net.NetworkCredential = New System.Net.NetworkCredential("<user>", "<pwd>", "<domain>")
Dim credentials As System.Net.CredentialCache = New System.Net.CredentialCache
credentials.Add(New Uri(wsService.Url), "Digest", userCredential)
wsService.Credentials = credentials
wsService.PreAuthenticate = True
wsService.MetodoEnCuestion(Params)
SOLUCIÓN:
Entrar en el arbol de gestión de IIS, clicar sobre la aplicación en cuestión (WS), y clicar botón derecho "Propiedades". Una vez aquí, sobre la pestaña "Seguridad de Directorios" y en la sección "Autenticación y control de acceso" sobre el botón "Modificar..."
Ahora solo hemos de seleccionar la casilla tal y como se indica en la siguiente imagen.

A disfrutar de la seguridad del ws conectándote a él mediante un usuario del dominio, y de la solución a tan extraño problema.
