sur un réseau, j'ai uns ervice qui doit aller lire un fichier sur un
serveur.
Si je lance le service avec le compte systeme, ca ne fonctionne pas, si je
le lance avec un compte utilisateur valide, ok.
Est-il possible que je lance le service en compte sysrtem et que je puisse,
en ayant login et password, accèder aux fichiers?
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 Bakmezdjian [MS]
Bonjour,
Cela est possible en impersonifiant le thread de votre service, juste avant l'appel à GetFiles. Voir cet article de la MSDN : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemSecurityPrincipalWindowsIdentityClassImpersonateTopic.asp
Le code exemple est un peu long, mais débarassé de la gestion des erreurs ça donne : - Création d'un token pour l'utilisateur à logger (utilisation du nom de l'utilisateur/mot de passe) - Création d'une classe Identity avec ce token - Impersonation - Code à faire tourner sous l'identité de l'utilisateur - Fin de l'impersonation
A noter qu'en .NET nous sommes obligés d'utiliser l'API Win32 LogonUser qui n'a pas d'équivalent en .NET 1.1.
J'espère que cela peut vous être utile,
Julien
"Geoffrey" a écrit dans le message de news:
Bonjour,
sur un réseau, j'ai uns ervice qui doit aller lire un fichier sur un serveur. Si je lance le service avec le compte systeme, ca ne fonctionne pas, si je le lance avec un compte utilisateur valide, ok.
Est-il possible que je lance le service en compte sysrtem et que je puisse, en ayant login et password, accèder aux fichiers?
j'utilise Directory.GetFiles et File.Copy
Merci
Bonjour,
Cela est possible en impersonifiant le thread de votre service, juste avant
l'appel à GetFiles. Voir cet article de la MSDN :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemSecurityPrincipalWindowsIdentityClassImpersonateTopic.asp
Le code exemple est un peu long, mais débarassé de la gestion des erreurs ça
donne :
- Création d'un token pour l'utilisateur à logger (utilisation du nom de
l'utilisateur/mot de passe)
- Création d'une classe Identity avec ce token
- Impersonation
- Code à faire tourner sous l'identité de l'utilisateur
- Fin de l'impersonation
A noter qu'en .NET nous sommes obligés d'utiliser l'API Win32 LogonUser qui
n'a pas d'équivalent en .NET 1.1.
J'espère que cela peut vous être utile,
Julien
"Geoffrey" <AEnlevergeoffrey@dufour.be> a écrit dans le message de news:
eF0bQjNmFHA.1204@TK2MSFTNGP12.phx.gbl...
Bonjour,
sur un réseau, j'ai uns ervice qui doit aller lire un fichier sur un
serveur.
Si je lance le service avec le compte systeme, ca ne fonctionne pas, si je
le lance avec un compte utilisateur valide, ok.
Est-il possible que je lance le service en compte sysrtem et que je
puisse,
en ayant login et password, accèder aux fichiers?
Cela est possible en impersonifiant le thread de votre service, juste avant l'appel à GetFiles. Voir cet article de la MSDN : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemSecurityPrincipalWindowsIdentityClassImpersonateTopic.asp
Le code exemple est un peu long, mais débarassé de la gestion des erreurs ça donne : - Création d'un token pour l'utilisateur à logger (utilisation du nom de l'utilisateur/mot de passe) - Création d'une classe Identity avec ce token - Impersonation - Code à faire tourner sous l'identité de l'utilisateur - Fin de l'impersonation
A noter qu'en .NET nous sommes obligés d'utiliser l'API Win32 LogonUser qui n'a pas d'équivalent en .NET 1.1.
J'espère que cela peut vous être utile,
Julien
"Geoffrey" a écrit dans le message de news:
Bonjour,
sur un réseau, j'ai uns ervice qui doit aller lire un fichier sur un serveur. Si je lance le service avec le compte systeme, ca ne fonctionne pas, si je le lance avec un compte utilisateur valide, ok.
Est-il possible que je lance le service en compte sysrtem et que je puisse, en ayant login et password, accèder aux fichiers?
j'utilise Directory.GetFiles et File.Copy
Merci
Geoffrey
Mon logiciel tourne sur W2000 ;(
"Julien Bakmezdjian [MS]" a écrit dans le message de news:%
Bonjour,
Cela est possible en impersonifiant le thread de votre service, juste
Le code exemple est un peu long, mais débarassé de la gestion des erreurs
ça
donne : - Création d'un token pour l'utilisateur à logger (utilisation du nom
de
l'utilisateur/mot de passe) - Création d'une classe Identity avec ce token - Impersonation - Code à faire tourner sous l'identité de l'utilisateur - Fin de l'impersonation
A noter qu'en .NET nous sommes obligés d'utiliser l'API Win32 LogonUser
qui
n'a pas d'équivalent en .NET 1.1.
J'espère que cela peut vous être utile,
Julien
"Geoffrey" a écrit dans le message de news:
> Bonjour, > > sur un réseau, j'ai uns ervice qui doit aller lire un fichier sur un > serveur. > Si je lance le service avec le compte systeme, ca ne fonctionne pas, si
je
> le lance avec un compte utilisateur valide, ok. > > Est-il possible que je lance le service en compte sysrtem et que je > puisse, > en ayant login et password, accèder aux fichiers? > > j'utilise > Directory.GetFiles et File.Copy > > > Merci > >
Mon logiciel tourne sur W2000 ;(
"Julien Bakmezdjian [MS]" <julienba@online.microsoft.com> a écrit dans le
message de news:%23vNaZIPmFHA.3936@TK2MSFTNGP10.phx.gbl...
Bonjour,
Cela est possible en impersonifiant le thread de votre service, juste
Le code exemple est un peu long, mais débarassé de la gestion des erreurs
ça
donne :
- Création d'un token pour l'utilisateur à logger (utilisation du nom
de
l'utilisateur/mot de passe)
- Création d'une classe Identity avec ce token
- Impersonation
- Code à faire tourner sous l'identité de l'utilisateur
- Fin de l'impersonation
A noter qu'en .NET nous sommes obligés d'utiliser l'API Win32 LogonUser
qui
n'a pas d'équivalent en .NET 1.1.
J'espère que cela peut vous être utile,
Julien
"Geoffrey" <AEnlevergeoffrey@dufour.be> a écrit dans le message de news:
eF0bQjNmFHA.1204@TK2MSFTNGP12.phx.gbl...
> Bonjour,
>
> sur un réseau, j'ai uns ervice qui doit aller lire un fichier sur un
> serveur.
> Si je lance le service avec le compte systeme, ca ne fonctionne pas, si
je
> le lance avec un compte utilisateur valide, ok.
>
> Est-il possible que je lance le service en compte sysrtem et que je
> puisse,
> en ayant login et password, accèder aux fichiers?
>
> j'utilise
> Directory.GetFiles et File.Copy
>
>
> Merci
>
>
Le code exemple est un peu long, mais débarassé de la gestion des erreurs
ça
donne : - Création d'un token pour l'utilisateur à logger (utilisation du nom
de
l'utilisateur/mot de passe) - Création d'une classe Identity avec ce token - Impersonation - Code à faire tourner sous l'identité de l'utilisateur - Fin de l'impersonation
A noter qu'en .NET nous sommes obligés d'utiliser l'API Win32 LogonUser
qui
n'a pas d'équivalent en .NET 1.1.
J'espère que cela peut vous être utile,
Julien
"Geoffrey" a écrit dans le message de news:
> Bonjour, > > sur un réseau, j'ai uns ervice qui doit aller lire un fichier sur un > serveur. > Si je lance le service avec le compte systeme, ca ne fonctionne pas, si
je
> le lance avec un compte utilisateur valide, ok. > > Est-il possible que je lance le service en compte sysrtem et que je > puisse, > en ayant login et password, accèder aux fichiers? > > j'utilise > Directory.GetFiles et File.Copy > > > Merci > >
Paul Bacelar
Pourquoi ne pas faire tourner votre service directement avec le compte réseau plutôt qu'avec le compte system local ? -- Paul Bacelar
"Geoffrey" wrote in message news:#
Mon logiciel tourne sur W2000 ;(
"Julien Bakmezdjian [MS]" a écrit dans le message de news:% > Bonjour, > > Cela est possible en impersonifiant le thread de votre service, juste avant > l'appel à GetFiles. Voir cet article de la MSDN : >
> > Le code exemple est un peu long, mais débarassé de la gestion des
erreurs
ça > donne : > - Création d'un token pour l'utilisateur à logger (utilisation du
nom
de > l'utilisateur/mot de passe) > - Création d'une classe Identity avec ce token > - Impersonation > - Code à faire tourner sous l'identité de l'utilisateur > - Fin de l'impersonation > > A noter qu'en .NET nous sommes obligés d'utiliser l'API Win32 LogonUser qui > n'a pas d'équivalent en .NET 1.1. > > J'espère que cela peut vous être utile, > > Julien > > "Geoffrey" a écrit dans le message de news: > > > Bonjour, > > > > sur un réseau, j'ai uns ervice qui doit aller lire un fichier sur un > > serveur. > > Si je lance le service avec le compte systeme, ca ne fonctionne pas,
si
je > > le lance avec un compte utilisateur valide, ok. > > > > Est-il possible que je lance le service en compte sysrtem et que je > > puisse, > > en ayant login et password, accèder aux fichiers? > > > > j'utilise > > Directory.GetFiles et File.Copy > > > > > > Merci > > > > > >
Pourquoi ne pas faire tourner votre service directement avec le compte
réseau plutôt qu'avec le compte system local ?
--
Paul Bacelar
"Geoffrey" <AEnlevergeoffrey@dufour.be> wrote in message
news:#r5kmxPmFHA.3256@tk2msftngp13.phx.gbl...
Mon logiciel tourne sur W2000 ;(
"Julien Bakmezdjian [MS]" <julienba@online.microsoft.com> a écrit dans le
message de news:%23vNaZIPmFHA.3936@TK2MSFTNGP10.phx.gbl...
> Bonjour,
>
> Cela est possible en impersonifiant le thread de votre service, juste
avant
> l'appel à GetFiles. Voir cet article de la MSDN :
>
>
> Le code exemple est un peu long, mais débarassé de la gestion des
erreurs
ça
> donne :
> - Création d'un token pour l'utilisateur à logger (utilisation du
nom
de
> l'utilisateur/mot de passe)
> - Création d'une classe Identity avec ce token
> - Impersonation
> - Code à faire tourner sous l'identité de l'utilisateur
> - Fin de l'impersonation
>
> A noter qu'en .NET nous sommes obligés d'utiliser l'API Win32 LogonUser
qui
> n'a pas d'équivalent en .NET 1.1.
>
> J'espère que cela peut vous être utile,
>
> Julien
>
> "Geoffrey" <AEnlevergeoffrey@dufour.be> a écrit dans le message de news:
> eF0bQjNmFHA.1204@TK2MSFTNGP12.phx.gbl...
> > Bonjour,
> >
> > sur un réseau, j'ai uns ervice qui doit aller lire un fichier sur un
> > serveur.
> > Si je lance le service avec le compte systeme, ca ne fonctionne pas,
si
je
> > le lance avec un compte utilisateur valide, ok.
> >
> > Est-il possible que je lance le service en compte sysrtem et que je
> > puisse,
> > en ayant login et password, accèder aux fichiers?
> >
> > j'utilise
> > Directory.GetFiles et File.Copy
> >
> >
> > Merci
> >
> >
>
>
Pourquoi ne pas faire tourner votre service directement avec le compte réseau plutôt qu'avec le compte system local ? -- Paul Bacelar
"Geoffrey" wrote in message news:#
Mon logiciel tourne sur W2000 ;(
"Julien Bakmezdjian [MS]" a écrit dans le message de news:% > Bonjour, > > Cela est possible en impersonifiant le thread de votre service, juste avant > l'appel à GetFiles. Voir cet article de la MSDN : >
> > Le code exemple est un peu long, mais débarassé de la gestion des
erreurs
ça > donne : > - Création d'un token pour l'utilisateur à logger (utilisation du
nom
de > l'utilisateur/mot de passe) > - Création d'une classe Identity avec ce token > - Impersonation > - Code à faire tourner sous l'identité de l'utilisateur > - Fin de l'impersonation > > A noter qu'en .NET nous sommes obligés d'utiliser l'API Win32 LogonUser qui > n'a pas d'équivalent en .NET 1.1. > > J'espère que cela peut vous être utile, > > Julien > > "Geoffrey" a écrit dans le message de news: > > > Bonjour, > > > > sur un réseau, j'ai uns ervice qui doit aller lire un fichier sur un > > serveur. > > Si je lance le service avec le compte systeme, ca ne fonctionne pas,
si
je > > le lance avec un compte utilisateur valide, ok. > > > > Est-il possible que je lance le service en compte sysrtem et que je > > puisse, > > en ayant login et password, accèder aux fichiers? > > > > j'utilise > > Directory.GetFiles et File.Copy > > > > > > Merci > > > > > >