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

Autentificación en servicio web .net desde php

Estas en el tema de Autentificación en servicio web .net desde php en el foro de .NET en Foros del Web. Hola amigos, llevo 4 días trabajando en un proyecto y ya me he tirado de todos los pelos de la cabeza y nada. La cuestion ...
  #1 (permalink)  
Antiguo 10/08/2007, 03:00
perrogrun
Invitado
 
Mensajes: n/a
Puntos:
Autentificación en servicio web .net desde php

Hola amigos, llevo 4 días trabajando en un proyecto y ya me he tirado de todos los pelos de la cabeza y nada.

La cuestion es que tengo que acceder a un servicio web creado en .net desde php y parece ser que no me deja acceder, siempre me responde: HTTP/1.1 401 Unauthorized

El proveedor me ha pasado este script .net para acceder:

Código:
#region VARIABLES GLOBALES

DataSet oDs = new DataSet();
long lngResultado;
int intResultado;

#endregion

#region REF. A SERVICIOS WEB ,CREDENCIALES Y CARGA DE XML DE PRUEBA

// Inicializacion de servicios WEb

BuscadorPropiedades.Propiedades oWsBuscadorPropiedades = new DebugWsHabitania.BuscadorPropiedades.Propiedades();

//esto es muy importante sin esto no puedes llamar al servicio

CredentialCache oCredentials = new CredentialCache();
string sUserWS = "xxxxxxx";
string sPassWs = "xxxxxxxx";                                                
string sDomWs = "DOMINIO";
int [] caracteristicas = new int[2];
oCredentials.Add(new System.Uri(oWsBuscadorPropiedades.Url),"Basic",new NetworkCredential(sUserWS,sPassWs,sDomWs));

//Asignacion de credenciales

oWsBuscadorPropiedades.Credentials = oCredentials;
oCredentials = null;

//aqui cargamos el xml de arriba de ejemplo

XmlDocument oXml = new XmlDocument();
oXml.Load(@"C:\XML\Servicio WEB Nuevos\PruebaServicioWeb.xml");

#endregion

//llamada al servicio web. Para nosotros es un objeto al que ya hemos hecho referencia. 

oDs = oWsBuscadorPropiedades.ObtenerEquipamientosPropiedad(oXml);
foreach (DataRow oRow in oDs.Tables[0].Rows)
{
Response.Write (oRow[0].ToString() + "<br>");
Response.Write (oRow[1].ToString() + "<br>");
}

El archivo xml que se le envia al servicio web es:

Código:
<?xml version="1.0" encoding="ISO-8859-1" ?> 

<parametros>

<general>

<p name="usuario">xxxxxx</p> 

<p name="idIdioma">34</p> 

<p name="idPais">34</p> 

<p name="idComunidad">-1</p> 

<p name="idProvincia">94</p> 

<p name="idLocalidad">41001</p> 

</general>

<parameters>

<p name="e_idComboProducto">28</p> 

<p name="list_Transacciones">2</p> 

<p name="list_Provincias">94</p> 

<p name="list_Localidades">41001</p> 

  <p name="e_PrecioDesde">400000</p> 

<p name="e_Preciohasta">2000000</p> 

<p name="e_MetrosDesde">10</p> 

<p name="e_Metroshasta">200</p> 

<p name="e_DormitoriosDede">2</p> 

 <p name="e_Referencia">AH0427</p> 

<p name="e_IDProperty">1064931</p> 

<p name="e_idTransaccionPropiedad">994561</p> 

<p name="e_idEntidadCliente">777</p> 

 </parameters>

  </parametros>
Ahora bien, os voy a poner cómo llamo desde php:

Código:
<?php
require_once('lib/nusoap.php');
$soapclient->debug_flag=true;

$myxml='<?xml version="1.0" encoding="ISO-8859-1"?>';
$myxml.='<parametros>';
$myxml.='<general>';
$myxml.='<p name="usuario">xxxxxx</p>';
$myxml.='<p name="idIdioma">34</p>';
$myxml.='<p name="idProvincia">94</p>';
$myxml.='</general>';
$myxml.='<parameters>';
$myxml.='</parameters>';
$myxml.=' </parametros>';

$params = array('oXMLEntrada'=>$myxml);

$user = 'xxxxxxx';
$pass = 'xxxxxxx';
$wsdl = "http://urlservicioWSDL";
$client = new SoapClient($wsdl, array( 'trace' => 2, 'location' => $wsdl, 'login' => $user, 'password' => $pass, 'authentication' => SOAP_AUTHENTICATION_DIGEST )); 

$result = $client->call('ObtenerLocalidades', $params);
echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';
	?>
Y nada, imposible no consigo que el servicio web me deje acceder, siempre 401.
La cosa cuirosa es que en php5 tampoco me deja acceder a las funciones pero si que me devuelve por ejemplo la lista de funciones con getfuntions()

Alguna idea? El proveedor dice que hay que hacer la autentificacion con credenciales, pero no se como se hace desde php.

Bueno gracias a todos de antemano y feliz verano!!!
  #2 (permalink)  
Antiguo 13/08/2007, 02:23
perrogrun
Invitado
 
Mensajes: n/a
Puntos:
Re: Autentificación en servicio web .net desde php

Ruego a algun administrador que traslade el post a php ya que por aquí no hay muchas respuestas. Gracias!!!!
  #3 (permalink)  
Antiguo 08/05/2009, 12:34
 
Fecha de Ingreso: mayo-2009
Mensajes: 1
Antigüedad: 15 años
Puntos: 0
Respuesta: Autentificación en servicio web .net desde php

Hola que tal?
Disculpa que te moleste, pero estaba buscando informacion de usos de credenciales desde php a un servidor .net y aun luego de buscar y buscar no he logrado encontrar nada. Queria preguntarte si habias logrado solucionar el inconveniente y en caso afirmativo, si podrias ser tan amable de darme una mano de como solucionaste el inconveniente.

Desde ya muchas gracias por tu tiempo.

Saludos,
Hernan
  #4 (permalink)  
Antiguo 08/05/2009, 16:38
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 19 años, 8 meses
Puntos: 6
Respuesta: Autentificación en servicio web .net desde php

Hola q tal, el tema es de hace 5 años y un poco mas jeje, espero q este link te sirva:

Creating and Consuming Web Services With PHP

saludos
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD
  #5 (permalink)  
Antiguo 08/05/2009, 17:09
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Autentificación en servicio web .net desde php

thumper el tema es del 2007 , si tienen dudas abran un tema nuevo.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
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 08:26.