| |||
Error http status 401: Access denied Hola amigos por favor alguien me puede ayudar con este error me sale cuando llama al webservice, lei por ahí que es un tema de credenciales pero nada más alguein por favor me puede ayudar con la solución. Es urgente. |
| |||
Gracias amigos ya encontre la solucion a este problema. y la pongo aqui por si alguien lo necesita alguna ves. Como dice el amigo jose el webservice tiene una autentificacion que hay que dejarle en windows y la autorizacion de los usuarios en deny =? (todos los anonimos), como lo tenía, cada vez que la pagian .aspx llama a una función del web service este pide una autentificacion mediante credenciales antes de hacer un request , por defecto el web service no hereda las credenciales que necesita cuando los usuarios se conectan, por eso hay que asignarle en forma manual. Por cada una de las llamadas que tengas a las funciones del web service hay que darle una credencial de auntentificación. Así por ejemplo: Dim objrecuperar as localhost.Service = New localhost.Service objrecuperar.crediantials = System.Net.CredentialCache.DefaultCredentials y aqui pones el código para llamar a la función que esta en el web services, recuerda que lo debes hacer para cada una de las llamadas que estes utilizando o su ves crearte una global... Luego cuando creas el virtual directory en el IIS, dale click derecho sobre el web service y ve a la pestaña Directory Security da click en editar en el cuadro de dialogo que dice Anonymous access..... desabilita el check de anonymous access y habilita el ultimo checkbox de la pantalla Integrated Windows Authentification y listo. Pruebalo y veras que funciona.... Saludos a todos |
| ||||
Puede que la web esté configurada para autentificación anónima, pero ese webservice en particular requiera la de windows, de todas formas Shakaio, puedes hacer que el webservice tampoco requiera autentificacion de windows si no quieres, es decir, evitar lo de las credenciales y utilizar autentificacion contra un bd o lo que tu quieras, configurandolo igual que una página, es decir, cliqueando sobre autentificacion anonima en el IIS y poner en el web.config del mismo permitir a todos, eso ya dependerá de ti y de tus necesidades |
| |||
Cita: Pero cuando hace
Iniciado por Jose_minglein2 Puede que la web esté configurada para autentificación anónima, pero ese webservice en particular requiera la de windows, objrecuperar.crediantials = System.Net.CredentialCache.DefaultCredentials Yo entiendo que pilla las credenciales del usuario web no? entonces deberíae star ya autenticado como usuario windows. ¿O pilla las del usuario anonimo? |
| ||||
Ummm, no recuerdo muy bien, creo recordar leer en el msdn de microsoft, que así pilla las credenciales de la máquina cliente, es decir, si ha iniciado sesion windows como Administrador y contraseña admin, p.ej, utiliza esa credenciales, por lo que en localhost, siempre funcionará, ya que el usuario con que se inicia sesion pertenece a los usuarios de windows, si se utiliza el webservice desde internete, no se yo si funcionará, a no ser que el usuario cliente tenga una cuenta identica en el servidor. |
| |||
Cita: Acabo de ver un ejemplo en el que utilizan eso en una webapp, ahí no hay problemas ya que coge el usuario logeado, pero en un servidor web, ni siquiera tiene porque estar logeado alguien
Iniciado por Jose_minglein2 Ummm, no recuerdo muy bien, creo recordar leer en el msdn de microsoft, que así pilla las credenciales de la máquina cliente, es decir, si ha iniciado sesion windows como Administrador y contraseña admin, p.ej, utiliza esa credenciales, por lo que en localhost, siempre funcionará, ya que el usuario con que se inicia sesion pertenece a los usuarios de windows, si se utiliza el webservice desde internete, no se yo si funcionará, a no ser que el usuario cliente tenga una cuenta identica en el servidor. |