Access denied depuis une application web

Le
Nico
Bonjour,

J'ai une application web qui va copier un fichier sur un server qui se
trouve sur le réseau lorsque le visiteur clique sur un linkbutton.
J'ai une erreur "access to the path \server is denied" lorsque
l'application tente de copier le fichier.
Cette erreur arrive seulement si dans mon fichier web.config, j'ai les
paramètres suivants :

<system.web>

<authentication mode="Windows" />
<identity impersonate="true" />
system.web>

Or je n'ai plus cette erreur si je met un login et mon de passe dans le
fichier web.config :

<system.web>

<authentication mode="Windows" />
<identity impersonate="true" userName="domainlogin" password="password" />
system.web>

J'aimerais ne pas avoir à mettre de mot de passe dans un fichier et
récupérer la session du visiteur pour avoir les droits de copier des fichiers
sur le réseau.

Quelqu'un aurait-il une solution à ce problème?

Merci
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Cyril S.
Le #12391331
WindowsIdentity identity = (WindowsIdentity)
System.Threading.Thread.CurrentPrincipal.Identity;
WindowsImpersonationContext impersonatedUser = identity.Impersonate();

// Là tu fais tout ce que tu as a faire sur server distant

impersonatedUser.Undo();

"Nico" wrote:

Bonjour,

J'ai une application web qui va copier un fichier sur un server qui se
trouve sur le réseau lorsque le visiteur clique sur un linkbutton.
J'ai une erreur "access to the path \server... is denied" lorsque
l'application tente de copier le fichier.
Cette erreur arrive seulement si dans mon fichier web.config, j'ai les
paramètres suivants :

...
<authentication mode="Windows" />
<identity impersonate="true" />
system.web>

Or je n'ai plus cette erreur si je met un login et mon de passe dans le
fichier web.config :

...
<authentication mode="Windows" />
<identity impersonate="true" userName="domainlogin" password="password" />
system.web>

J'aimerais ne pas avoir à mettre de mot de passe dans un fichier et
récupérer la session du visiteur pour avoir les droits de copier des fichiers
sur le réseau.

Quelqu'un aurait-il une solution à ce problème?

Merci



Nico
Le #12391251
Ca ne fonctionne pas, j'ai toujours le même problème.

"Cyril S." a écrit :

WindowsIdentity identity = (WindowsIdentity)
System.Threading.Thread.CurrentPrincipal.Identity;
WindowsImpersonationContext impersonatedUser = identity.Impersonate();

// Là tu fais tout ce que tu as a faire sur server distant

impersonatedUser.Undo();

"Nico" wrote:

> Bonjour,
>
> J'ai une application web qui va copier un fichier sur un server qui se
> trouve sur le réseau lorsque le visiteur clique sur un linkbutton.
> J'ai une erreur "access to the path \server... is denied" lorsque
> l'application tente de copier le fichier.
> Cette erreur arrive seulement si dans mon fichier web.config, j'ai les
> paramètres suivants :
>
> > ...
> <authentication mode="Windows" />
> <identity impersonate="true" />
> system.web>
>
> Or je n'ai plus cette erreur si je met un login et mon de passe dans le
> fichier web.config :
>
> > ...
> <authentication mode="Windows" />
> <identity impersonate="true" userName="domainlogin" password="password" />
> system.web>
>
> J'aimerais ne pas avoir à mettre de mot de passe dans un fichier et
> récupérer la session du visiteur pour avoir les droits de copier des fichiers
> sur le réseau.
>
> Quelqu'un aurait-il une solution à ce problème?
>
> Merci
>


Paul Bacelar
Le #12391151
Avec le premier web.config, ASP.NET utilisera comme compte de sécurité, le
compte Windows qu'IIS a récupéré du client (le navigateur Web)

- Vérifiez que vous avez interdit l'accès anonyme à votre application Web,
sinon IIS utilisera un compte par défaut qui n'aura vraisemblablement pas
les bons droits sur le répertoire incriminé.

- Vérifiez que les comptes Windows des utilisateurs de votre application ont
les droits suffisants sur le répertoire incriminé.

--
Paul Bacelar

"Nico" news:
Ca ne fonctionne pas, j'ai toujours le même problème.

"Cyril S." a écrit :

> WindowsIdentity identity = (WindowsIdentity)
> System.Threading.Thread.CurrentPrincipal.Identity;
> WindowsImpersonationContext impersonatedUser = identity.Impersonate();
>
> // Là tu fais tout ce que tu as a faire sur server distant
>
> impersonatedUser.Undo();
>
> "Nico" wrote:
>
> > Bonjour,
> >
> > J'ai une application web qui va copier un fichier sur un server qui se
> > trouve sur le réseau lorsque le visiteur clique sur un linkbutton.
> > J'ai une erreur "access to the path \server... is denied" lorsque
> > l'application tente de copier le fichier.
> > Cette erreur arrive seulement si dans mon fichier web.config, j'ai les
> > paramètres suivants :
> >
> > > > ...
> > <authentication mode="Windows" />
> > <identity impersonate="true" />
> > system.web>
> >
> > Or je n'ai plus cette erreur si je met un login et mon de passe dans


le
> > fichier web.config :
> >
> > > > ...
> > <authentication mode="Windows" />
> > <identity impersonate="true" userName="domainlogin"


password="password" />
> > system.web>
> >
> > J'aimerais ne pas avoir à mettre de mot de passe dans un fichier et
> > récupérer la session du visiteur pour avoir les droits de copier des


fichiers
> > sur le réseau.
> >
> > Quelqu'un aurait-il une solution à ce problème?
> >
> > Merci
> >


Nico
Le #12391071
IIS n'utilise pas pas l'accès anonyme et le compte qui s'y connecte a bien
les droits d'accès nécessaires.
Je tourne en rond et je ne trouve pas comment récupérer les droits de
l'utilisateur pour copier un fichier.
Paul Bacelar
Le #12391051
Utilisez Filemon (www.sysinternals.com) pour savoir sur quel fichier ou
répertoire et sur quel action précise interview l'erreur.

--
Paul Bacelar

"Nico" news:
IIS n'utilise pas pas l'accès anonyme et le compte qui s'y connecte a bien
les droits d'accès nécessaires.
Je tourne en rond et je ne trouve pas comment récupérer les droits de
l'utilisateur pour copier un fichier.


Publicité
Poster une réponse
Anonyme