Je cherche =E0 lister les fichiers qui sont stock=E9s sur un=20
serveur win 2000 =E0 partir d'une appli asp.net qui tourne=20
sur un autre serveur.
Je veut que mon appli utilise l'autentification windows=20
du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir =3D new DirectoryInfo
(@"\\<serveurdistant>\rep_partag=E9\sousrep\");
FileInfo[] files =3D dir.GetFiles("*.txt");
Lorsque je sp=E9cifie un compte r=E9seau (windows) en dur=20
dans web.config, cela fonctionne. Lorsque je ne sp=E9cifie=20
pas de compte pour qu'il utilise le compte courant, ca ne=20
fonctionne pas. J'ai l'exception cit=E9e en objet.
Lorsque je recupere des fichiers qui se trouvent sur le=20
serveur asp.net il n'y a aucun souci, meme avec=20
l'identit=E9 courante.
Lorque j'appel ma page depuis le serveur asp.net pour=20
chercher des fichiers sur le serveur distant, ca=20
fonctionne aussi avec l'identit=E9 courante.
Mais lorsque j'appel la page d'un autre poste que le=20
serveur asp.net, et que je veut chercher des fichiers qui=20
sont sur une autre machine que le serveur asp.net, ca ne=20
fonctionne qu'en l'identit=E9 du web.config avec un=20
userName et un password.
Bien sur j'ai les droits de lister ces r=E9pertoires avec=20
l'identit=E9 courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se=20
fait plus entre le serveur asp.net et le serveur distant !
Est ce que quelqu'un a d=E9j=E0 eu ce pb ?
Est ce que je fais une fausse manip ?
Merci de vos r=E9actions ou =E9ventuelles r=E9ponse.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Julien Adam
Par défaut, si tu ne spécifies pas de compte ce n'est pas le compte courant qui est utilisé mais le compte ASPNET (sous windows 2000) ou NETWORK SERVICE (sous windows 2003)du serveur web qui héberge les pages. Il faut donner les droits à cet utilisateur.
Julien Adam
"ceoph" wrote in message news:1ee301c46fd1$d170dfe0$ Bonjour,
Je cherche à lister les fichiers qui sont stockés sur un serveur win 2000 à partir d'une appli asp.net qui tourne sur un autre serveur. Je veut que mon appli utilise l'autentification windows du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir = new DirectoryInfo (@"<serveurdistant>rep_partagésousrep"); FileInfo[] files = dir.GetFiles("*.txt");
Lorsque je spécifie un compte réseau (windows) en dur dans web.config, cela fonctionne. Lorsque je ne spécifie pas de compte pour qu'il utilise le compte courant, ca ne fonctionne pas. J'ai l'exception citée en objet.
Lorsque je recupere des fichiers qui se trouvent sur le serveur asp.net il n'y a aucun souci, meme avec l'identité courante.
Lorque j'appel ma page depuis le serveur asp.net pour chercher des fichiers sur le serveur distant, ca fonctionne aussi avec l'identité courante.
Mais lorsque j'appel la page d'un autre poste que le serveur asp.net, et que je veut chercher des fichiers qui sont sur une autre machine que le serveur asp.net, ca ne fonctionne qu'en l'identité du web.config avec un userName et un password.
Bien sur j'ai les droits de lister ces répertoires avec l'identité courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se fait plus entre le serveur asp.net et le serveur distant !
Est ce que quelqu'un a déjà eu ce pb ? Est ce que je fais une fausse manip ?
Merci de vos réactions ou éventuelles réponse.
Ceoph
Par défaut, si tu ne spécifies pas de compte ce n'est pas le compte courant
qui est utilisé mais le compte ASPNET (sous windows 2000) ou NETWORK SERVICE
(sous windows 2003)du serveur web qui héberge les pages. Il faut donner les
droits à cet utilisateur.
Julien Adam
"ceoph" <anonymous@discussions.microsoft.com> wrote in message
news:1ee301c46fd1$d170dfe0$a301280a@phx.gbl...
Bonjour,
Je cherche à lister les fichiers qui sont stockés sur un
serveur win 2000 à partir d'une appli asp.net qui tourne
sur un autre serveur.
Je veut que mon appli utilise l'autentification windows
du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir = new DirectoryInfo
(@"\<serveurdistant>rep_partagésousrep");
FileInfo[] files = dir.GetFiles("*.txt");
Lorsque je spécifie un compte réseau (windows) en dur
dans web.config, cela fonctionne. Lorsque je ne spécifie
pas de compte pour qu'il utilise le compte courant, ca ne
fonctionne pas. J'ai l'exception citée en objet.
Lorsque je recupere des fichiers qui se trouvent sur le
serveur asp.net il n'y a aucun souci, meme avec
l'identité courante.
Lorque j'appel ma page depuis le serveur asp.net pour
chercher des fichiers sur le serveur distant, ca
fonctionne aussi avec l'identité courante.
Mais lorsque j'appel la page d'un autre poste que le
serveur asp.net, et que je veut chercher des fichiers qui
sont sur une autre machine que le serveur asp.net, ca ne
fonctionne qu'en l'identité du web.config avec un
userName et un password.
Bien sur j'ai les droits de lister ces répertoires avec
l'identité courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se
fait plus entre le serveur asp.net et le serveur distant !
Est ce que quelqu'un a déjà eu ce pb ?
Est ce que je fais une fausse manip ?
Par défaut, si tu ne spécifies pas de compte ce n'est pas le compte courant qui est utilisé mais le compte ASPNET (sous windows 2000) ou NETWORK SERVICE (sous windows 2003)du serveur web qui héberge les pages. Il faut donner les droits à cet utilisateur.
Julien Adam
"ceoph" wrote in message news:1ee301c46fd1$d170dfe0$ Bonjour,
Je cherche à lister les fichiers qui sont stockés sur un serveur win 2000 à partir d'une appli asp.net qui tourne sur un autre serveur. Je veut que mon appli utilise l'autentification windows du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir = new DirectoryInfo (@"<serveurdistant>rep_partagésousrep"); FileInfo[] files = dir.GetFiles("*.txt");
Lorsque je spécifie un compte réseau (windows) en dur dans web.config, cela fonctionne. Lorsque je ne spécifie pas de compte pour qu'il utilise le compte courant, ca ne fonctionne pas. J'ai l'exception citée en objet.
Lorsque je recupere des fichiers qui se trouvent sur le serveur asp.net il n'y a aucun souci, meme avec l'identité courante.
Lorque j'appel ma page depuis le serveur asp.net pour chercher des fichiers sur le serveur distant, ca fonctionne aussi avec l'identité courante.
Mais lorsque j'appel la page d'un autre poste que le serveur asp.net, et que je veut chercher des fichiers qui sont sur une autre machine que le serveur asp.net, ca ne fonctionne qu'en l'identité du web.config avec un userName et un password.
Bien sur j'ai les droits de lister ces répertoires avec l'identité courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se fait plus entre le serveur asp.net et le serveur distant !
Est ce que quelqu'un a déjà eu ce pb ? Est ce que je fais une fausse manip ?
Merci de vos réactions ou éventuelles réponse.
Ceoph
ceoph
Quand je ne specifie pas de compte je laisse la balise <identity impersonate="true" /> Donc, si je ne me trompe pas c'est le compte du client qui est utilisé ! De plus, j'ai un message de trace qui appel User.Identity.Name qui correspond bien au compte de l'utilisateur distant.
-----Message d'origine----- Par défaut, si tu ne spécifies pas de compte ce n'est
pas le compte courant
qui est utilisé mais le compte ASPNET (sous windows
2000) ou NETWORK SERVICE
(sous windows 2003)du serveur web qui héberge les pages.
Il faut donner les
droits à cet utilisateur.
Julien Adam
"ceoph" wrote in
message
news:1ee301c46fd1$d170dfe0$ Bonjour,
Je cherche à lister les fichiers qui sont stockés sur un serveur win 2000 à partir d'une appli asp.net qui tourne sur un autre serveur. Je veut que mon appli utilise l'autentification windows du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir = new DirectoryInfo (@"<serveurdistant>rep_partagésousrep"); FileInfo[] files = dir.GetFiles("*.txt");
Lorsque je spécifie un compte réseau (windows) en dur dans web.config, cela fonctionne. Lorsque je ne spécifie pas de compte pour qu'il utilise le compte courant, ca ne fonctionne pas. J'ai l'exception citée en objet.
Lorsque je recupere des fichiers qui se trouvent sur le serveur asp.net il n'y a aucun souci, meme avec l'identité courante.
Lorque j'appel ma page depuis le serveur asp.net pour chercher des fichiers sur le serveur distant, ca fonctionne aussi avec l'identité courante.
Mais lorsque j'appel la page d'un autre poste que le serveur asp.net, et que je veut chercher des fichiers qui sont sur une autre machine que le serveur asp.net, ca ne fonctionne qu'en l'identité du web.config avec un userName et un password.
Bien sur j'ai les droits de lister ces répertoires avec l'identité courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se fait plus entre le serveur asp.net et le serveur
distant !
Est ce que quelqu'un a déjà eu ce pb ? Est ce que je fais une fausse manip ?
Merci de vos réactions ou éventuelles réponse.
Ceoph
.
Quand je ne specifie pas de compte je laisse la balise
<identity impersonate="true" />
Donc, si je ne me trompe pas c'est le compte du client
qui est utilisé !
De plus, j'ai un message de trace qui appel
User.Identity.Name qui correspond bien au compte de
l'utilisateur distant.
-----Message d'origine-----
Par défaut, si tu ne spécifies pas de compte ce n'est
pas le compte courant
qui est utilisé mais le compte ASPNET (sous windows
2000) ou NETWORK SERVICE
(sous windows 2003)du serveur web qui héberge les pages.
Il faut donner les
droits à cet utilisateur.
Julien Adam
"ceoph" <anonymous@discussions.microsoft.com> wrote in
Je cherche à lister les fichiers qui sont stockés sur un
serveur win 2000 à partir d'une appli asp.net qui tourne
sur un autre serveur.
Je veut que mon appli utilise l'autentification windows
du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir = new DirectoryInfo
(@"\<serveurdistant>rep_partagésousrep");
FileInfo[] files = dir.GetFiles("*.txt");
Lorsque je spécifie un compte réseau (windows) en dur
dans web.config, cela fonctionne. Lorsque je ne spécifie
pas de compte pour qu'il utilise le compte courant, ca ne
fonctionne pas. J'ai l'exception citée en objet.
Lorsque je recupere des fichiers qui se trouvent sur le
serveur asp.net il n'y a aucun souci, meme avec
l'identité courante.
Lorque j'appel ma page depuis le serveur asp.net pour
chercher des fichiers sur le serveur distant, ca
fonctionne aussi avec l'identité courante.
Mais lorsque j'appel la page d'un autre poste que le
serveur asp.net, et que je veut chercher des fichiers qui
sont sur une autre machine que le serveur asp.net, ca ne
fonctionne qu'en l'identité du web.config avec un
userName et un password.
Bien sur j'ai les droits de lister ces répertoires avec
l'identité courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se
fait plus entre le serveur asp.net et le serveur
distant !
Est ce que quelqu'un a déjà eu ce pb ?
Est ce que je fais une fausse manip ?
Quand je ne specifie pas de compte je laisse la balise <identity impersonate="true" /> Donc, si je ne me trompe pas c'est le compte du client qui est utilisé ! De plus, j'ai un message de trace qui appel User.Identity.Name qui correspond bien au compte de l'utilisateur distant.
-----Message d'origine----- Par défaut, si tu ne spécifies pas de compte ce n'est
pas le compte courant
qui est utilisé mais le compte ASPNET (sous windows
2000) ou NETWORK SERVICE
(sous windows 2003)du serveur web qui héberge les pages.
Il faut donner les
droits à cet utilisateur.
Julien Adam
"ceoph" wrote in
message
news:1ee301c46fd1$d170dfe0$ Bonjour,
Je cherche à lister les fichiers qui sont stockés sur un serveur win 2000 à partir d'une appli asp.net qui tourne sur un autre serveur. Je veut que mon appli utilise l'autentification windows du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir = new DirectoryInfo (@"<serveurdistant>rep_partagésousrep"); FileInfo[] files = dir.GetFiles("*.txt");
Lorsque je spécifie un compte réseau (windows) en dur dans web.config, cela fonctionne. Lorsque je ne spécifie pas de compte pour qu'il utilise le compte courant, ca ne fonctionne pas. J'ai l'exception citée en objet.
Lorsque je recupere des fichiers qui se trouvent sur le serveur asp.net il n'y a aucun souci, meme avec l'identité courante.
Lorque j'appel ma page depuis le serveur asp.net pour chercher des fichiers sur le serveur distant, ca fonctionne aussi avec l'identité courante.
Mais lorsque j'appel la page d'un autre poste que le serveur asp.net, et que je veut chercher des fichiers qui sont sur une autre machine que le serveur asp.net, ca ne fonctionne qu'en l'identité du web.config avec un userName et un password.
Bien sur j'ai les droits de lister ces répertoires avec l'identité courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se fait plus entre le serveur asp.net et le serveur
distant !
Est ce que quelqu'un a déjà eu ce pb ? Est ce que je fais une fausse manip ?
Merci de vos réactions ou éventuelles réponse.
Ceoph
.
Julien Adam
User.Identity.Name ne permet pas de vérifier sous quel utilisateur le process tourne. Il donne simplement le nom de la personne authentifiée pour cette session ASP.NET. Dans certaines conditions (Windows authentication activée et impersonation=true sans username/password) il est vrai que les deux sont égaux mais ce n'est pas une vérité générale. Essaye ça plutot :
Trace.Write("Running under the " + System.Security.Principal.WindowsIdentity.GetCurrent().Name + " account");
Sinon je dirais que ça devrait marcher, essaye de tracer le problème avec des outils comme tokenmon ou filemon pour voir les fichiers ouverts et les logins utilisés. (http://www.sysinternals.com)
Bon celà dit je ne suis pas sur que ça soit top au niveau sécurité tout ça. Une application web qui tourne sous l'utilisateur Admin du domaine ça ne sonne pas juste ...
Julien
"ceoph" wrote in message news:1f9201c46fe6$95743a40$ Quand je ne specifie pas de compte je laisse la balise <identity impersonate="true" /> Donc, si je ne me trompe pas c'est le compte du client qui est utilisé ! De plus, j'ai un message de trace qui appel User.Identity.Name qui correspond bien au compte de l'utilisateur distant.
-----Message d'origine----- Par défaut, si tu ne spécifies pas de compte ce n'est
pas le compte courant
qui est utilisé mais le compte ASPNET (sous windows
2000) ou NETWORK SERVICE
(sous windows 2003)du serveur web qui héberge les pages.
Il faut donner les
droits à cet utilisateur.
Julien Adam
"ceoph" wrote in
message
news:1ee301c46fd1$d170dfe0$ Bonjour,
Je cherche à lister les fichiers qui sont stockés sur un serveur win 2000 à partir d'une appli asp.net qui tourne sur un autre serveur. Je veut que mon appli utilise l'autentification windows du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir = new DirectoryInfo (@"<serveurdistant>rep_partagésousrep"); FileInfo[] files = dir.GetFiles("*.txt");
Lorsque je spécifie un compte réseau (windows) en dur dans web.config, cela fonctionne. Lorsque je ne spécifie pas de compte pour qu'il utilise le compte courant, ca ne fonctionne pas. J'ai l'exception citée en objet.
Lorsque je recupere des fichiers qui se trouvent sur le serveur asp.net il n'y a aucun souci, meme avec l'identité courante.
Lorque j'appel ma page depuis le serveur asp.net pour chercher des fichiers sur le serveur distant, ca fonctionne aussi avec l'identité courante.
Mais lorsque j'appel la page d'un autre poste que le serveur asp.net, et que je veut chercher des fichiers qui sont sur une autre machine que le serveur asp.net, ca ne fonctionne qu'en l'identité du web.config avec un userName et un password.
Bien sur j'ai les droits de lister ces répertoires avec l'identité courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se fait plus entre le serveur asp.net et le serveur
distant !
Est ce que quelqu'un a déjà eu ce pb ? Est ce que je fais une fausse manip ?
Merci de vos réactions ou éventuelles réponse.
Ceoph
.
User.Identity.Name ne permet pas de vérifier sous quel utilisateur le
process tourne. Il donne simplement le nom de la personne authentifiée pour
cette session ASP.NET. Dans certaines conditions (Windows authentication
activée et impersonation=true sans username/password) il est vrai que les
deux sont égaux mais ce n'est pas une vérité générale. Essaye ça plutot :
Trace.Write("Running under the " +
System.Security.Principal.WindowsIdentity.GetCurrent().Name + " account");
Sinon je dirais que ça devrait marcher, essaye de tracer le problème avec
des outils comme tokenmon ou filemon pour voir les fichiers ouverts et les
logins utilisés. (http://www.sysinternals.com)
Bon celà dit je ne suis pas sur que ça soit top au niveau sécurité tout ça.
Une application web qui tourne sous l'utilisateur Admin du domaine ça ne
sonne pas juste ...
Julien
"ceoph" <anonymous@discussions.microsoft.com> wrote in message
news:1f9201c46fe6$95743a40$a501280a@phx.gbl...
Quand je ne specifie pas de compte je laisse la balise
<identity impersonate="true" />
Donc, si je ne me trompe pas c'est le compte du client
qui est utilisé !
De plus, j'ai un message de trace qui appel
User.Identity.Name qui correspond bien au compte de
l'utilisateur distant.
-----Message d'origine-----
Par défaut, si tu ne spécifies pas de compte ce n'est
pas le compte courant
qui est utilisé mais le compte ASPNET (sous windows
2000) ou NETWORK SERVICE
(sous windows 2003)du serveur web qui héberge les pages.
Il faut donner les
droits à cet utilisateur.
Julien Adam
"ceoph" <anonymous@discussions.microsoft.com> wrote in
Je cherche à lister les fichiers qui sont stockés sur un
serveur win 2000 à partir d'une appli asp.net qui tourne
sur un autre serveur.
Je veut que mon appli utilise l'autentification windows
du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir = new DirectoryInfo
(@"\<serveurdistant>rep_partagésousrep");
FileInfo[] files = dir.GetFiles("*.txt");
Lorsque je spécifie un compte réseau (windows) en dur
dans web.config, cela fonctionne. Lorsque je ne spécifie
pas de compte pour qu'il utilise le compte courant, ca ne
fonctionne pas. J'ai l'exception citée en objet.
Lorsque je recupere des fichiers qui se trouvent sur le
serveur asp.net il n'y a aucun souci, meme avec
l'identité courante.
Lorque j'appel ma page depuis le serveur asp.net pour
chercher des fichiers sur le serveur distant, ca
fonctionne aussi avec l'identité courante.
Mais lorsque j'appel la page d'un autre poste que le
serveur asp.net, et que je veut chercher des fichiers qui
sont sur une autre machine que le serveur asp.net, ca ne
fonctionne qu'en l'identité du web.config avec un
userName et un password.
Bien sur j'ai les droits de lister ces répertoires avec
l'identité courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se
fait plus entre le serveur asp.net et le serveur
distant !
Est ce que quelqu'un a déjà eu ce pb ?
Est ce que je fais une fausse manip ?
User.Identity.Name ne permet pas de vérifier sous quel utilisateur le process tourne. Il donne simplement le nom de la personne authentifiée pour cette session ASP.NET. Dans certaines conditions (Windows authentication activée et impersonation=true sans username/password) il est vrai que les deux sont égaux mais ce n'est pas une vérité générale. Essaye ça plutot :
Trace.Write("Running under the " + System.Security.Principal.WindowsIdentity.GetCurrent().Name + " account");
Sinon je dirais que ça devrait marcher, essaye de tracer le problème avec des outils comme tokenmon ou filemon pour voir les fichiers ouverts et les logins utilisés. (http://www.sysinternals.com)
Bon celà dit je ne suis pas sur que ça soit top au niveau sécurité tout ça. Une application web qui tourne sous l'utilisateur Admin du domaine ça ne sonne pas juste ...
Julien
"ceoph" wrote in message news:1f9201c46fe6$95743a40$ Quand je ne specifie pas de compte je laisse la balise <identity impersonate="true" /> Donc, si je ne me trompe pas c'est le compte du client qui est utilisé ! De plus, j'ai un message de trace qui appel User.Identity.Name qui correspond bien au compte de l'utilisateur distant.
-----Message d'origine----- Par défaut, si tu ne spécifies pas de compte ce n'est
pas le compte courant
qui est utilisé mais le compte ASPNET (sous windows
2000) ou NETWORK SERVICE
(sous windows 2003)du serveur web qui héberge les pages.
Il faut donner les
droits à cet utilisateur.
Julien Adam
"ceoph" wrote in
message
news:1ee301c46fd1$d170dfe0$ Bonjour,
Je cherche à lister les fichiers qui sont stockés sur un serveur win 2000 à partir d'une appli asp.net qui tourne sur un autre serveur. Je veut que mon appli utilise l'autentification windows du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir = new DirectoryInfo (@"<serveurdistant>rep_partagésousrep"); FileInfo[] files = dir.GetFiles("*.txt");
Lorsque je spécifie un compte réseau (windows) en dur dans web.config, cela fonctionne. Lorsque je ne spécifie pas de compte pour qu'il utilise le compte courant, ca ne fonctionne pas. J'ai l'exception citée en objet.
Lorsque je recupere des fichiers qui se trouvent sur le serveur asp.net il n'y a aucun souci, meme avec l'identité courante.
Lorque j'appel ma page depuis le serveur asp.net pour chercher des fichiers sur le serveur distant, ca fonctionne aussi avec l'identité courante.
Mais lorsque j'appel la page d'un autre poste que le serveur asp.net, et que je veut chercher des fichiers qui sont sur une autre machine que le serveur asp.net, ca ne fonctionne qu'en l'identité du web.config avec un userName et un password.
Bien sur j'ai les droits de lister ces répertoires avec l'identité courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se fait plus entre le serveur asp.net et le serveur
distant !
Est ce que quelqu'un a déjà eu ce pb ? Est ce que je fais une fausse manip ?
Merci de vos réactions ou éventuelles réponse.
Ceoph
.
J'ai utilisé filemon, effectivement j'ai un access denied ! System.Security.Principal.WindowsIdentity.GetCurrent ().Name me donne bien le nom de l'utilisateur distant ! Je vois aussi ce nom dans filemon en option Je ne comprend tjs pas pb j'ai ce pb alors que pour l'accès à une base de données c'est pareil et là ca fonctionne.
quand au fait d'utiliser les droits du client, je suis sur un intranet et c'est une appli d'administration, c'es t pourquoi je ne veut pas avoir en dur un compte dans le web.config !
-----Message d'origine----- User.Identity.Name ne permet pas de vérifier sous quel
utilisateur le
process tourne. Il donne simplement le nom de la
personne authentifiée pour
cette session ASP.NET. Dans certaines conditions
(Windows authentication
activée et impersonation=true sans username/password) il
est vrai que les
deux sont égaux mais ce n'est pas une vérité générale.
Essaye ça plutot :
Trace.Write("Running under the " + System.Security.Principal.WindowsIdentity.GetCurrent
().Name + " account");
Sinon je dirais que ça devrait marcher, essaye de tracer
le problème avec
des outils comme tokenmon ou filemon pour voir les
fichiers ouverts et les
logins utilisés. (http://www.sysinternals.com)
Bon celà dit je ne suis pas sur que ça soit top au
niveau sécurité tout ça.
Une application web qui tourne sous l'utilisateur Admin
du domaine ça ne
sonne pas juste ...
Julien
"ceoph" wrote in
message
news:1f9201c46fe6$95743a40$ Quand je ne specifie pas de compte je laisse la balise <identity impersonate="true" /> Donc, si je ne me trompe pas c'est le compte du client qui est utilisé ! De plus, j'ai un message de trace qui appel User.Identity.Name qui correspond bien au compte de l'utilisateur distant.
-----Message d'origine----- Par défaut, si tu ne spécifies pas de compte ce n'est
pas le compte courant
qui est utilisé mais le compte ASPNET (sous windows
2000) ou NETWORK SERVICE
(sous windows 2003)du serveur web qui héberge les pages.
Il faut donner les
droits à cet utilisateur.
Julien Adam
"ceoph" wrote in
message
news:1ee301c46fd1$d170dfe0$ Bonjour,
Je cherche à lister les fichiers qui sont stockés sur un serveur win 2000 à partir d'une appli asp.net qui tourne sur un autre serveur. Je veut que mon appli utilise l'autentification windows du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir = new DirectoryInfo (@"<serveurdistant>rep_partagésousrep"); FileInfo[] files = dir.GetFiles("*.txt");
Lorsque je spécifie un compte réseau (windows) en dur dans web.config, cela fonctionne. Lorsque je ne spécifie pas de compte pour qu'il utilise le compte courant, ca
ne
fonctionne pas. J'ai l'exception citée en objet.
Lorsque je recupere des fichiers qui se trouvent sur le serveur asp.net il n'y a aucun souci, meme avec l'identité courante.
Lorque j'appel ma page depuis le serveur asp.net pour chercher des fichiers sur le serveur distant, ca fonctionne aussi avec l'identité courante.
Mais lorsque j'appel la page d'un autre poste que le serveur asp.net, et que je veut chercher des fichiers
qui
sont sur une autre machine que le serveur asp.net, ca ne fonctionne qu'en l'identité du web.config avec un userName et un password.
Bien sur j'ai les droits de lister ces répertoires avec l'identité courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se fait plus entre le serveur asp.net et le serveur
distant !
Est ce que quelqu'un a déjà eu ce pb ? Est ce que je fais une fausse manip ?
Merci de vos réactions ou éventuelles réponse.
Ceoph
.
.
J'ai utilisé filemon, effectivement j'ai un access
denied !
System.Security.Principal.WindowsIdentity.GetCurrent
().Name me donne bien le nom de l'utilisateur distant !
Je vois aussi ce nom dans filemon en option
Je ne comprend tjs pas pb j'ai ce pb alors que pour
l'accès à une base de données c'est pareil et là ca
fonctionne.
quand au fait d'utiliser les droits du client, je suis
sur un intranet et c'est une appli d'administration, c'es
t pourquoi je ne veut pas avoir en dur un compte dans le
web.config !
-----Message d'origine-----
User.Identity.Name ne permet pas de vérifier sous quel
utilisateur le
process tourne. Il donne simplement le nom de la
personne authentifiée pour
cette session ASP.NET. Dans certaines conditions
(Windows authentication
activée et impersonation=true sans username/password) il
est vrai que les
deux sont égaux mais ce n'est pas une vérité générale.
Essaye ça plutot :
Trace.Write("Running under the " +
System.Security.Principal.WindowsIdentity.GetCurrent
().Name + " account");
Sinon je dirais que ça devrait marcher, essaye de tracer
le problème avec
des outils comme tokenmon ou filemon pour voir les
fichiers ouverts et les
logins utilisés. (http://www.sysinternals.com)
Bon celà dit je ne suis pas sur que ça soit top au
niveau sécurité tout ça.
Une application web qui tourne sous l'utilisateur Admin
du domaine ça ne
sonne pas juste ...
Julien
"ceoph" <anonymous@discussions.microsoft.com> wrote in
message
news:1f9201c46fe6$95743a40$a501280a@phx.gbl...
Quand je ne specifie pas de compte je laisse la balise
<identity impersonate="true" />
Donc, si je ne me trompe pas c'est le compte du client
qui est utilisé !
De plus, j'ai un message de trace qui appel
User.Identity.Name qui correspond bien au compte de
l'utilisateur distant.
-----Message d'origine-----
Par défaut, si tu ne spécifies pas de compte ce n'est
pas le compte courant
qui est utilisé mais le compte ASPNET (sous windows
2000) ou NETWORK SERVICE
(sous windows 2003)du serveur web qui héberge les pages.
Il faut donner les
droits à cet utilisateur.
Julien Adam
"ceoph" <anonymous@discussions.microsoft.com> wrote in
Je cherche à lister les fichiers qui sont stockés sur un
serveur win 2000 à partir d'une appli asp.net qui tourne
sur un autre serveur.
Je veut que mon appli utilise l'autentification windows
du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir = new DirectoryInfo
(@"\<serveurdistant>rep_partagésousrep");
FileInfo[] files = dir.GetFiles("*.txt");
Lorsque je spécifie un compte réseau (windows) en dur
dans web.config, cela fonctionne. Lorsque je ne spécifie
pas de compte pour qu'il utilise le compte courant, ca
ne
fonctionne pas. J'ai l'exception citée en objet.
Lorsque je recupere des fichiers qui se trouvent sur le
serveur asp.net il n'y a aucun souci, meme avec
l'identité courante.
Lorque j'appel ma page depuis le serveur asp.net pour
chercher des fichiers sur le serveur distant, ca
fonctionne aussi avec l'identité courante.
Mais lorsque j'appel la page d'un autre poste que le
serveur asp.net, et que je veut chercher des fichiers
qui
sont sur une autre machine que le serveur asp.net, ca ne
fonctionne qu'en l'identité du web.config avec un
userName et un password.
Bien sur j'ai les droits de lister ces répertoires avec
l'identité courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se
fait plus entre le serveur asp.net et le serveur
distant !
Est ce que quelqu'un a déjà eu ce pb ?
Est ce que je fais une fausse manip ?
J'ai utilisé filemon, effectivement j'ai un access denied ! System.Security.Principal.WindowsIdentity.GetCurrent ().Name me donne bien le nom de l'utilisateur distant ! Je vois aussi ce nom dans filemon en option Je ne comprend tjs pas pb j'ai ce pb alors que pour l'accès à une base de données c'est pareil et là ca fonctionne.
quand au fait d'utiliser les droits du client, je suis sur un intranet et c'est une appli d'administration, c'es t pourquoi je ne veut pas avoir en dur un compte dans le web.config !
-----Message d'origine----- User.Identity.Name ne permet pas de vérifier sous quel
utilisateur le
process tourne. Il donne simplement le nom de la
personne authentifiée pour
cette session ASP.NET. Dans certaines conditions
(Windows authentication
activée et impersonation=true sans username/password) il
est vrai que les
deux sont égaux mais ce n'est pas une vérité générale.
Essaye ça plutot :
Trace.Write("Running under the " + System.Security.Principal.WindowsIdentity.GetCurrent
().Name + " account");
Sinon je dirais que ça devrait marcher, essaye de tracer
le problème avec
des outils comme tokenmon ou filemon pour voir les
fichiers ouverts et les
logins utilisés. (http://www.sysinternals.com)
Bon celà dit je ne suis pas sur que ça soit top au
niveau sécurité tout ça.
Une application web qui tourne sous l'utilisateur Admin
du domaine ça ne
sonne pas juste ...
Julien
"ceoph" wrote in
message
news:1f9201c46fe6$95743a40$ Quand je ne specifie pas de compte je laisse la balise <identity impersonate="true" /> Donc, si je ne me trompe pas c'est le compte du client qui est utilisé ! De plus, j'ai un message de trace qui appel User.Identity.Name qui correspond bien au compte de l'utilisateur distant.
-----Message d'origine----- Par défaut, si tu ne spécifies pas de compte ce n'est
pas le compte courant
qui est utilisé mais le compte ASPNET (sous windows
2000) ou NETWORK SERVICE
(sous windows 2003)du serveur web qui héberge les pages.
Il faut donner les
droits à cet utilisateur.
Julien Adam
"ceoph" wrote in
message
news:1ee301c46fd1$d170dfe0$ Bonjour,
Je cherche à lister les fichiers qui sont stockés sur un serveur win 2000 à partir d'une appli asp.net qui tourne sur un autre serveur. Je veut que mon appli utilise l'autentification windows du client (modif du fichier web.config).
Voici mon code:
DirectoryInfo dir = new DirectoryInfo (@"<serveurdistant>rep_partagésousrep"); FileInfo[] files = dir.GetFiles("*.txt");
Lorsque je spécifie un compte réseau (windows) en dur dans web.config, cela fonctionne. Lorsque je ne spécifie pas de compte pour qu'il utilise le compte courant, ca
ne
fonctionne pas. J'ai l'exception citée en objet.
Lorsque je recupere des fichiers qui se trouvent sur le serveur asp.net il n'y a aucun souci, meme avec l'identité courante.
Lorque j'appel ma page depuis le serveur asp.net pour chercher des fichiers sur le serveur distant, ca fonctionne aussi avec l'identité courante.
Mais lorsque j'appel la page d'un autre poste que le serveur asp.net, et que je veut chercher des fichiers
qui
sont sur une autre machine que le serveur asp.net, ca ne fonctionne qu'en l'identité du web.config avec un userName et un password.
Bien sur j'ai les droits de lister ces répertoires avec l'identité courante. Je suis admins du domaine.
On dirais en fait que la transmission des droits ne se fait plus entre le serveur asp.net et le serveur
distant !
Est ce que quelqu'un a déjà eu ce pb ? Est ce que je fais une fausse manip ?