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

script ASP n'accède pas à un serveur distant, pb de droits sous IIS ?

4 réponses
Avatar
isaac.benoit
[je n'ai pas trouvé d'autre endroit pour poster ce message, et j'ai lu
le thread "Exécution des ASP avec un compte NT spécifique" qui
correspond à mon problème, dans le même groupe]


Bonjour,

Je souhaite accéder à partir d'une page ASP sur un serveur A (sur
lequel tourne IIS) à des fichiers sur un serveur B (sans IIS).
Typiquement, pour lister tous les fichiers se trouvant dans un
répertoire donné sur B.
Malheureusement la commande :

Set objfso = Server.CreateObject("Scripting.FileSystemObject")
chemin = ""\\serveur_B\repertoire"
set d = objfso.GetFolder(chemin)

me renvoie l'erreur "Path not found", alors que si je tape dans mon
explorateur l'URL "\\serveur_B\repertoire" le dossier est trouvé et
affiché.
Est-ce que ceci serait du au fait que le script ASP, lorsqu'il
s'execute, n'a pas les memes droits que l'utilisateur connecté (via
son login nt) au site ?

J'ai lu quelque part que les scripts avait par défaut un compte avec
un login IUSR_nommachine, qui n'a donc pas forcément les memes droits
que moi.

Comment faire alors pour que le script ASP "voit" le serveur B ?
L'idéal serait que le script ASP se connecte avec le login/mdp
identique à celui qui est loggé sur la machine qui a lancé le script
via son browser. Ceci afin que le script n'affiche le contenu de
'\\serveur_B\repertoire' que si l'utilisateur a le droit d'y accéder.

Voilà, j'espère que quelqu'un pourra m'aider. Je précise que je ne
suis pas l'administrateur de serveur_A, et que je n'ai pas beaucoup de
connaissances dans l'administration de serveur IIS (j'aimerai donc des
explications simples).
S'il y a une manip à faire faire au niveau du serveur A, ce qui me
semble indispensable, il faudrait qu'elle ne soit pas trop dangereuse
au niveau de la sécurité. Par exemple, je ne souhaite pas que via mon
script ASP des gens non autorisés à consulter le serveur B puissent
le faire.


Merci d'avance pour votre aide.


Benoit

PS : si vous savez diagnostiquer que mon problème ne concerne qu'ASP,
alors vous connaissez peut etre la solution... si vous pouviez me la
donner quand même ça serait sympa ! :o)

4 réponses

Avatar
Francis
Benoit a écrit :
[je n'ai pas trouvé d'autre endroit pour poster ce message, et j'ai lu
le thread "Exécution des ASP avec un compte NT spécifique" qui
correspond à mon problème, dans le même groupe]


Bonjour,

Je souhaite accéder à partir d'une page ASP sur un serveur A (sur
lequel tourne IIS) à des fichiers sur un serveur B (sans IIS).
Typiquement, pour lister tous les fichiers se trouvant dans un
répertoire donné sur B.
Malheureusement la commande :

Set objfso = Server.CreateObject("Scripting.FileSystemObject")
chemin = ""serveur_Brepertoire"
set d = objfso.GetFolder(chemin)

me renvoie l'erreur "Path not found", alors que si je tape dans mon
explorateur l'URL "serveur_Brepertoire" le dossier est trouvé et
affiché.
Est-ce que ceci serait du au fait que le script ASP, lorsqu'il
s'execute, n'a pas les memes droits que l'utilisateur connecté (via
son login nt) au site ?

J'ai lu quelque part que les scripts avait par défaut un compte avec
un login IUSR_nommachine, qui n'a donc pas forcément les memes droits
que moi.

Comment faire alors pour que le script ASP "voit" le serveur B ?
L'idéal serait que le script ASP se connecte avec le login/mdp
identique à celui qui est loggé sur la machine qui a lancé le script
via son browser. Ceci afin que le script n'affiche le contenu de
'serveur_Brepertoire' que si l'utilisateur a le droit d'y accéder.

Voilà, j'espère que quelqu'un pourra m'aider. Je précise que je ne
suis pas l'administrateur de serveur_A, et que je n'ai pas beaucoup de
connaissances dans l'administration de serveur IIS (j'aimerai donc des
explications simples).
S'il y a une manip à faire faire au niveau du serveur A, ce qui me
semble indispensable, il faudrait qu'elle ne soit pas trop dangereuse
au niveau de la sécurité. Par exemple, je ne souhaite pas que via mon
script ASP des gens non autorisés à consulter le serveur B puissent
le faire.


Merci d'avance pour votre aide.


Benoit

PS : si vous savez diagnostiquer que mon problème ne concerne qu'ASP,
alors vous connaissez peut etre la solution... si vous pouviez me la
donner quand même ça serait sympa ! :o)


Il est peut-être possible d'accéder au répertoire distant par
l'intermédiaire d'un répertoire virtuel IIS.
Le répretoire virtuel permet d'utiliser un login/mot de passe pour se
connecter à un répertoire partagé, comme serveur_brepertoire .
Avec ce répertoire virtuel tu pourras accéder au dossier partagé en
http, mais je ne suis pas certain que ça fonctionnera avec
filesystemobject, à tester.
Pour créer un répertoire virtuel IIS : Aller dans l'administration IIS
(tu n'y échapperas pas!), clic droit sur le site web et créer un nouveau
répertoire virtuel. L'une des options permet de choisir un répertoire
partagé serveur_brepertoire puis d'entrer un compte (compte défini
sur le serveur B).
Bonne chance!
Avatar
isaac.benoit
Francis wrote in message news:...
Il est peut-être possible d'accéder au répertoire distant par
l'intermédiaire d'un répertoire virtuel IIS.
Le répretoire virtuel permet d'utiliser un login/mot de passe pour se
connecter à un répertoire partagé, comme serveur_brepertoire .
Avec ce répertoire virtuel tu pourras accéder au dossier partagé en
http, mais je ne suis pas certain que ça fonctionnera avec
filesystemobject, à tester.
Pour créer un répertoire virtuel IIS : Aller dans l'administration IIS
(tu n'y échapperas pas!), clic droit sur le site web et créer un nouveau
répertoire virtuel. L'une des options permet de choisir un répertoire
partagé serveur_brepertoire puis d'entrer un compte (compte défini
sur le serveur B).




Merci de m'avoir répondu. Je n'ai pas encore essayé votre méthode,
mais en la lisant, j'ai peur qu'elle ne fasse pas exactement ce que je
souhaite : si je crée un répertoire virtuel avec un compte (fixe) qui
a accès au serveur B, alors tous les utilisateurs qui n'ont pas accès
au serveur B d'habitude, y auront accès par l'intermédiaire de ma page
ASP, non ?
A moins bien sûr que je gère ensuite côté script ASP l'identification
des membres mais ceci n'est pas envisageable.
Je souhaiterais que le compte/login utilisé pour se connecter au
serveur B soit le même que celui qui est connecté à la machine qui
accède au site (sur le serveur A).
Comment puis-je faire ceci ?

En vous remerciant

Benoit
Avatar
Francis
Benoit wrote:
Francis wrote in message news:...

Il est peut-être possible d'accéder au répertoire distant par
l'intermédiaire d'un répertoire virtuel IIS.
Le répretoire virtuel permet d'utiliser un login/mot de passe pour se
connecter à un répertoire partagé, comme serveur_brepertoire .
Avec ce répertoire virtuel tu pourras accéder au dossier partagé en
http, mais je ne suis pas certain que ça fonctionnera avec
filesystemobject, à tester.
Pour créer un répertoire virtuel IIS : Aller dans l'administration IIS
(tu n'y échapperas pas!), clic droit sur le site web et créer un nouveau
répertoire virtuel. L'une des options permet de choisir un répertoire
partagé serveur_brepertoire puis d'entrer un compte (compte défini
sur le serveur B).





Merci de m'avoir répondu. Je n'ai pas encore essayé votre méthode,
mais en la lisant, j'ai peur qu'elle ne fasse pas exactement ce que je
souhaite : si je crée un répertoire virtuel avec un compte (fixe) qui
a accès au serveur B, alors tous les utilisateurs qui n'ont pas accès
au serveur B d'habitude, y auront accès par l'intermédiaire de ma page
ASP, non ?
A moins bien sûr que je gère ensuite côté script ASP l'identification
des membres mais ceci n'est pas envisageable.
Je souhaiterais que le compte/login utilisé pour se connecter au
serveur B soit le même que celui qui est connecté à la machine qui
accède au site (sur le serveur A).
Comment puis-je faire ceci ?

En vous remerciant

Benoit



Je n'ai jamais réussi à résoudre ce problème, bien que c'était avec
Windows NT.
Les répertoires partagés donnent du fil à retordre, j'avais fini par
tout mettre en local.
Je vous souhaite de trouver une solution, je n'en avais pas trouvé à
l'époque.
Quelques effets secondaires lors de l'accès à un répertoire partagé :
* La mise à jour des fichiers n'est pas prise en temps réel, il y a une
mise en cache des fichiers distants
* Modification par FrontPage impossible
* Mêmes problèmes avec le FTP

Peut-être que vous pourriez faire le contraire : Plutôt que IIS aille
chercher des fichiers sur le serveur B, il est peut-être possible de
copier les fichiers sur le serveur A ; ensuite en local c'est beaucoup
plus simple.
Avatar
jbongran
"Benoit" a écrit dans le message de
news:
[je n'ai pas trouvé d'autre endroit pour poster ce message, et j'ai lu
le thread "Exécution des ASP avec un compte NT spécifique" qui
correspond à mon problème, dans le même groupe]


Bonjour,

Je souhaite accéder à partir d'une page ASP sur un serveur A (sur
lequel tourne IIS) à des fichiers sur un serveur B (sans IIS).
Typiquement, pour lister tous les fichiers se trouvant dans un
répertoire donné sur B.
Malheureusement la commande :

Set objfso = Server.CreateObject("Scripting.FileSystemObject")
chemin = ""serveur_Brepertoire"
set d = objfso.GetFolder(chemin)

me renvoie l'erreur "Path not found", alors que si je tape dans mon
explorateur l'URL "serveur_Brepertoire" le dossier est trouvé et
affiché.
Est-ce que ceci serait du au fait que le script ASP, lorsqu'il
s'execute, n'a pas les memes droits que l'utilisateur connecté (via
son login nt) au site ?

J'ai lu quelque part que les scripts avait par défaut un compte avec
un login IUSR_nommachine, qui n'a donc pas forcément les memes droits
que moi.

Comment faire alors pour que le script ASP "voit" le serveur B ?
L'idéal serait que le script ASP se connecte avec le login/mdp
identique à celui qui est loggé sur la machine qui a lancé le script
via son browser. Ceci afin que le script n'affiche le contenu de
'serveur_Brepertoire' que si l'utilisateur a le droit d'y accéder.

Voilà, j'espère que quelqu'un pourra m'aider. Je précise que je ne
suis pas l'administrateur de serveur_A, et que je n'ai pas beaucoup de
connaissances dans l'administration de serveur IIS (j'aimerai donc des
explications simples).
S'il y a une manip à faire faire au niveau du serveur A, ce qui me
semble indispensable, il faudrait qu'elle ne soit pas trop dangereuse
au niveau de la sécurité. Par exemple, je ne souhaite pas que via mon
script ASP des gens non autorisés à consulter le serveur B puissent
le faire.


Merci d'avance pour votre aide.


Benoit

PS : si vous savez diagnostiquer que mon problème ne concerne qu'ASP,
alors vous connaissez peut etre la solution... si vous pouviez me la
donner quand même ça serait sympa ! :o)



Cette fiche récapitule les différents modes d'authentification et ce qu'ils
permettent, notamment la délégation de droits...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsent7/html/vxconIISAuthentication.asp
J'avait fait il y a longtemps quelque chose de similaire: lister les
fichiers sur un autre serveur, mais la page asp se trouvait sur cette autre
serveur et il y avait un virtuel qui pointait dessus. Peut être qu'avec des
doits bien positionnés sur le serveur distant cela ferait l'affaire ?