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

Access denied depuis une application web

5 réponses
Avatar
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="domain\login" 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

5 réponses

Avatar
Cyril S.
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 :

<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



Avatar
Nico
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 :
>
> <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
>


Avatar
Paul Bacelar
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" wrote in message
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 :
> >
> > <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
> >


Avatar
Nico
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.
Avatar
Paul Bacelar
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" wrote in message
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.