Consommer service web php en .NET
Bonsoir à vous tous,
Tout d'abords je souhaite expliquer le contexte de mon projet ici. Étant étudiant en BTS Informatique de Gestion 2ième Année Option Développeur, j'ai pour but de réaliser plusieurs petits outils durant ma période de stage, tout ceci dans le but de récupérer des champs dans Active Directory (ex : nom,prénom,compteWindows,email,...) pour pouvoir permettre aux utilisateurs du domaine, d'utiliser les mêmes identifiants et mot de passe, que les sessions windows, pour se connecter sur tel ou tel portail pédagogique.
J'ai fais un schéma pour comprendre un peu l'ensemble de mon projet.
http://img704.imageshack.us/img704/1...hemaprojet.jpg
Pour ce qui est de l'appli1 tout est bon, je récupère les informations souhaitées (le fichier texte étant là pour récupérer les mots de passe, sachant que ce champs n'est pas récupérable directement dans AD et par la suite faire le lien avec les identifiants)
Structure du fichier:
Code:
1 2 3 4
|
id1 pwd1
id2 pwd2
id3 pwd3 |
----------------------------------
Sur l'hébergement externe j'ai simplement crée une DB ayant sensiblement la même structure que la base mySQL dans le domaine (juste pour des test simples).
J'aborde maintenant l'appli2, le côté serveur du service web est fait, à travers une class 'connexion' (faite en php) j'ai bien l'accès à mes méthodes accesseurs à partir de l'appli en .NET.
Un morceau de ma class 'connexion'
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
class connexion
{
// Variables privées
private $serveur;
private $utilisateur;
private $password;
private $database;
private $resultat;
//Constructeur
public function __construct($serveur, $utilisateur, $password, $database)
{
$this->serveur = $serveur;
$this->utilisateur = $utilisateur;
$this->password = $password;
$this->database = $database;
mysql_connect($this->serveur,$this->utilisateur,$this->password);
mysql_select_db($this->database);
$query = "SELECT * FROM maTable WHERE id = '15'"; //Requête de test, pas de WHERE pour l'instant, on passe juste un id au hasard
$req = mysql_query($query);
$data = mysql_fetch_assoc($req);
$this->resultat = $data['nom'];
}
//L'accesseur
public function getResultat()
{
return $this->resultat;
} |
En outre, j'ai un problème au niveau d'une de mes méthodes (un simple SELECT). En php tout vas bien, si je fais un echo de ma méthode, du genre :
Code:
echo $connexion->getResultat();
Sur un navigateur, j'ai bien le nom de l'utilisateur ayant l'id passé en paramètre (ceci reste à faire).
Voila l'objet de mon problème maintenant. Je passe par un WinForm pour travailler avec le service, je clique sur le bouton pour invoquer cette méthode à afficher dans une messageBox et la rien ne s'affiche. Tout étant entre 'Try Catch EndTry' pas d'exception levée. Juste un resultat = ""...
Donc je ne trouve pas mon problème, peut-être est-ce l'encodage, mais je n'y crois pas trop car si je retourne juste une chaine comme :
Code:
1 2 3
|
$this->resultat = 'test';
return $this->resultat; |
à partir de la méthode dans le winForm j'ai bien 'test' qui apparait à l'écran.
Si quelqu'un veut bien m'éclairer sur ce sujet, je suis preneur car pas moyen de trouver ou ça bloque.
Cordialement, Lope_