Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Récupérer dans un web service le nom de la machine cliente et son user login

10 réponses
Avatar
Francois Muller
Bonjour

Comment puis je dans un webservice récupérer le nom du PC client effectuant
un appel de fonction (et son login utilisateur, si possible)

F.

10 réponses

Avatar
Francois Muller
Bonjour




"Francois Muller" a écrit
Comment puis je dans un webservice récupérer le nom du PC client
effectuant
un appel de fonction (et son login utilisateur, si possible)



Personne pour me répondre (pour le nom de la machine, car pour le username,
c'est fait) ?

F.
Avatar
Paul Bacelar
"Francois Muller" wrote in
message news:
Bonjour
>

"Francois Muller" a écrit
> Comment puis je dans un webservice récupérer le nom du PC client
> effectuant
> un appel de fonction (et son login utilisateur, si possible)

Personne pour me répondre (pour le nom de la machine, car pour le


username,
c'est fait) ?

F.





Le nom d'une machine ne veut pas dire grand chose dans un environnement Web.
Si vous parlez de nom DNS ou Netbios, vous allez vous confronter à toutes
une panoplie de mesure de sécurité.


--
Paul Bacelar
Avatar
Francois Muller
"Paul Bacelar" a écrit dans le message
de news:
Le nom d'une machine ne veut pas dire grand chose dans un environnement
Web.
Si vous parlez de nom DNS ou Netbios, vous allez vous confronter à toutes
une panoplie de mesure de sécurité.



Outre qu'ici, même si il s'agit d'un webservice, il ne s'agit pas
d'environnement web, je me contenterais de l'adresse IP du requêteur.

Donc, je reformule :

Comment puis je dans un webservice récupérer l'adresse IP du PC client
effectuant un appel de fonction ?

Merci.

F.
Avatar
Paul Bacelar
"Francois Muller" wrote in
message news:#

"Paul Bacelar" a écrit dans le message
de news:
> Le nom d'une machine ne veut pas dire grand chose dans un environnement
> Web.
> Si vous parlez de nom DNS ou Netbios, vous allez vous confronter à


toutes
> une panoplie de mesure de sécurité.

Outre qu'ici, même si il s'agit d'un webservice, il ne s'agit pas
d'environnement web, je me contenterais de l'adresse IP du requêteur.

Donc, je reformule :

Comment puis je dans un webservice récupérer l'adresse IP du PC client
effectuant un appel de fonction ?

Merci.

F.





WebService avec HTTP, c'est du HTTP donc du Web.

Un client n'a pas forcément d'adresse IP, et pas forcément une seule adresse
IP.


--
Paul Bacelar
Avatar
Francois Muller
"Paul Bacelar" a écrit dans le message
de news:
WebService avec HTTP, c'est du HTTP donc du Web.



Je me sers du WebService juste pour exposer un certain nombre de procédures.

F.
Avatar
Paul Bacelar
"Francois Muller" wrote in
message news:

"Paul Bacelar" a écrit dans le message
de news:
> WebService avec HTTP, c'est du HTTP donc du Web.

Je me sers du WebService juste pour exposer un certain nombre de


procédures.

F.





Si vous voulez vraiment continuer sur cette pente savonneuse, c'est à vous
de voir.

Quel est votre vraie problème car je pense que votre "nom de machine" sert à
implémenter une fonctionnalité et n'est pas un but en soit.
--

Paul Bacelar
Avatar
Simon Mourier
Vous pouvez utiliser HttpContext.Current.Request.UserHostAddress mais, comme
indiqué précédemment, il y a de grandes chances que cela ne fonctionne pas,
ou que cela fonctionne et puis que plus tard, ca ne marche plus suite à des
changements dans l'infrastructure IP, dans la mise en place de nouvelles
procédures de sécurité, des systèmes de translation d'adresse IP qu'on va
rencontrer de plus en plus, y compris en LAN.

Le nom de machine est dans HttpContext.Current.Request.UserHostName avec les
mêmes restrictions que l'adresse IP.

Il est plus efficace d'utiliser le login de l'utilisateur, en forçant une
authentification (plutôt intégrée dans le cas d'un web service LAN):
HttpContext.Current.User.Identity.Name

D'autre part, il faut noter que HttpContext n'est pas forcément garanti dans
le futur au sein d'un web service, si il est hébergé dans autre chose qu'une
application Web Service ASP.NET (ASMX)

Simon.
www.softfluent.com


"Francois Muller" a écrit
dans le message de news:

"Paul Bacelar" a écrit dans le message
de news:
WebService avec HTTP, c'est du HTTP donc du Web.



Je me sers du WebService juste pour exposer un certain nombre de
procédures.

F.




Avatar
Francois Muller
"Paul Bacelar" a écrit dans le message
de news:
Si vous voulez vraiment continuer sur cette pente savonneuse, c'est à vous
de voir.



Que voulez vous dire ?

Quel est votre vraie problème car je pense que votre "nom de machine" sert
à
implémenter une fonctionnalité et n'est pas un but en soit.



Mon Webservice implémente un certain nombre de fonctionnalités quyi vont
"taper" dans les tables. Une table, dite "de contexte", liées aux tables
historiques, reçoit entre autre le nom de la machine où a été fait
l'action.

F.
Avatar
jerome
Bonjour,
tu peux essayer le code suivant tu trouvera peut-être ton bonheur ?


private void Load_DataGrid_Variable()
{
// déclaration du dataTable:
DataTable MyTable1 = new DataTable();
DataRow MyRow;
// Col1
DataColumn MyCol1 = new DataColumn("COL1", Type.GetType("System.String"));
MyTable1.Columns.Add(MyCol1);
//Col2
DataColumn MyCol2 = new DataColumn("COL2", Type.GetType("System.String"));
MyTable1.Columns.Add(MyCol2);
object [] myArray = new object[2];


// Charge la collection de variables dans l'objet col1
NameValueCollection coll;
coll=Request.ServerVariables;

// Charge les clefs dans un tableau de string
String[] arr1 = coll.AllKeys;
// 1ere boucle sur les clefs:
for (int i = 0; i < arr1.Length; i++)
{

String[] arr2=coll.GetValues(arr1[i]);
// 2eme Boucle sur les valeurs d'une clef:
for (int j = 0; j < arr2.Length; j++)
{
myArray[0]= arr1[i].ToString(); //Clef
myArray[1]= arr2[j].ToString(); //Valeur

// create and add the row.
MyRow = MyTable1.NewRow();
MyRow.ItemArray = myArray;

MyTable1.Rows.Add(MyRow);
}
}

DataGrid_Variable.DataSource = MyTable1;
DataGrid_Variable.DataBind();
MyTable1.Dispose();
}
Avatar
Francois Muller
Bonjour

"jerome" a écrit dans le message
de news: A7A7BC57-2655-439D-
tu peux essayer le code suivant tu trouvera peut-être ton bonheur ?



Merci. Mais j'avais entretemps trouvé la solution : récupérer l'IP dans le
HttpRequest et résoudre le nom a posteriori.

F.