Foros del Web » Programación para mayores de 30 ;) » .NET »

Error http status 401: Access denied

Estas en el tema de Error http status 401: Access denied en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/06/2005, 08:19
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
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.
  #2 (permalink)  
Antiguo 27/06/2005, 08:43
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Deberías dar más información, pero ese error, tiene pinta de como dices sea de credenciales, es decir, que en tu web.cofig y en tu IIS tengas autentificacion de Windows (no anonimo), y por eso necesitas identificarte como usuario.
  #3 (permalink)  
Antiguo 27/06/2005, 14:13
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
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
  #4 (permalink)  
Antiguo 28/06/2005, 02:21
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 6 meses
Puntos: 1
Si pero eso funciona, si la web va con autenticacion de windows, pero si es una web publica seguramente no funcionará con autenticacion de windows creo yo.
  #5 (permalink)  
Antiguo 28/06/2005, 02:36
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
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
  #6 (permalink)  
Antiguo 28/06/2005, 02:39
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 6 meses
Puntos: 1
Cita:
Iniciado por Jose_minglein2
Puede que la web esté configurada para autentificación anónima, pero ese webservice en particular requiera la de windows,
Pero cuando hace
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?
  #7 (permalink)  
Antiguo 28/06/2005, 02:52
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
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.
  #8 (permalink)  
Antiguo 28/06/2005, 08:17
 
Fecha de Ingreso: junio-2005
Mensajes: 20
Antigüedad: 18 años, 10 meses
Puntos: 0
Otra forma para utilizar las credenciales es:

dim a as localhost.webservice
Dim cr As New System.Net.NetworkCredential("usuario", "password", "dominio")
a.Credentials = cr
  #9 (permalink)  
Antiguo 28/06/2005, 08:51
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 6 meses
Puntos: 1
Cita:
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.
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
  #10 (permalink)  
Antiguo 28/06/2005, 08:52
 
Fecha de Ingreso: mayo-2005
Mensajes: 64
Antigüedad: 19 años
Puntos: 1
de hehco el usuario de base de datos es el mismo de la intranet y por eso esta configurada con autentificación de windows, y para evitar ataques. Gracias por sus comentarios.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:48.