Je cherche à utiliser l'API LogonUser pour me connecter sur un poste
avec un compte local du poste distant.
J'ai essayé avec un compte du domaine, cela fonctionne parfaitement par
contre si j'utilise un compte local à la machine cela ne marche plus.
Quelqu'un aurait il des pistes à ce sujet ?
Pour info voici mon code :
if (LogonUser(_strUsername, _strDomain, _strPassword,
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out lnToken))
{
System.Diagnostics.Trace.TraceInformation(" Logon succeed!");
if (DuplicateToken(lnToken, 2, out hTokenDuplicate))
{
WindowsIdentity windowsIdentity = new WindowsIdentity(lnToken);
WindowsImpersonationContext impersonationContext =
windowsIdentity.Impersonate();
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
Gilles TOURREAU
Le Fri, 25 May 2007 11:01:23 +0200, Sebastien Curutchet a écrit:
Bonjour,
Je cherche à utiliser l'API LogonUser pour me connecter sur un poste avec un compte local du poste distant. J'ai essayé avec un compte du domaine, cela fonctionne parfaitement par contre si j'utilise un compte local à la machine cela ne marche plus.
Quelqu'un aurait il des pistes à ce sujet ?
Pour info voici mon code :
if (LogonUser(_strUsername, _strDomain, _strPassword, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out lnToken)) { System.Diagnostics.Trace.TraceInformation(" Logon succeed!");
if (DuplicateToken(lnToken, 2, out hTokenDuplicate)) { WindowsIdentity windowsIdentity = new WindowsIdentity(lnToken); WindowsImpersonationContext impersonationContext = windowsIdentity.Impersonate();
Pouvez-vous indiquer à quel moment de votre code cela ne fonctionne pas ? Pouvez-vous indiquer le code de l'erreur retourner par un Marshal.GetLastWin32Error() ?
Avez-vous regardez au niveau des paramètres de stratégie locale de la machine si l'utilisateur à le droit d'arrêter le système ? (Stratégies locales>Attributions des droits utilisateur>Arrêter le système).
Cordialement
-- Gilles TOURREAU
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Le Fri, 25 May 2007 11:01:23 +0200, Sebastien Curutchet
<drq@section13.net> a écrit:
Bonjour,
Je cherche à utiliser l'API LogonUser pour me connecter sur un poste
avec un compte local du poste distant.
J'ai essayé avec un compte du domaine, cela fonctionne parfaitement par
contre si j'utilise un compte local à la machine cela ne marche plus.
Quelqu'un aurait il des pistes à ce sujet ?
Pour info voici mon code :
if (LogonUser(_strUsername, _strDomain, _strPassword,
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out lnToken))
{
System.Diagnostics.Trace.TraceInformation(" Logon succeed!");
if (DuplicateToken(lnToken, 2, out hTokenDuplicate))
{
WindowsIdentity windowsIdentity = new WindowsIdentity(lnToken);
WindowsImpersonationContext impersonationContext =
windowsIdentity.Impersonate();
Pouvez-vous indiquer à quel moment de votre code cela ne fonctionne pas ?
Pouvez-vous indiquer le code de l'erreur retourner par un
Marshal.GetLastWin32Error() ?
Avez-vous regardez au niveau des paramètres de stratégie locale de la
machine si l'utilisateur à le droit d'arrêter le système ? (Stratégies
locales>Attributions des droits utilisateur>Arrêter le système).
Cordialement
--
Gilles TOURREAU
gilles.tourreau@pos.fr
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Le Fri, 25 May 2007 11:01:23 +0200, Sebastien Curutchet a écrit:
Bonjour,
Je cherche à utiliser l'API LogonUser pour me connecter sur un poste avec un compte local du poste distant. J'ai essayé avec un compte du domaine, cela fonctionne parfaitement par contre si j'utilise un compte local à la machine cela ne marche plus.
Quelqu'un aurait il des pistes à ce sujet ?
Pour info voici mon code :
if (LogonUser(_strUsername, _strDomain, _strPassword, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out lnToken)) { System.Diagnostics.Trace.TraceInformation(" Logon succeed!");
if (DuplicateToken(lnToken, 2, out hTokenDuplicate)) { WindowsIdentity windowsIdentity = new WindowsIdentity(lnToken); WindowsImpersonationContext impersonationContext = windowsIdentity.Impersonate();
Pouvez-vous indiquer à quel moment de votre code cela ne fonctionne pas ? Pouvez-vous indiquer le code de l'erreur retourner par un Marshal.GetLastWin32Error() ?
Avez-vous regardez au niveau des paramètres de stratégie locale de la machine si l'utilisateur à le droit d'arrêter le système ? (Stratégies locales>Attributions des droits utilisateur>Arrêter le système).
Cordialement
-- Gilles TOURREAU
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Sebastien Curutchet
Gilles TOURREAU a écrit :
Pouvez-vous indiquer à quel moment de votre code cela ne fonctionne pas ? Pouvez-vous indiquer le code de l'erreur retourner par un Marshal.GetLastWin32Error() ?
Avez-vous regardez au niveau des paramètres de stratégie locale de la machine si l'utilisateur à le droit d'arrêter le système ? (Stratégies locales>Attributions des droits utilisateur>Arrêter le système).
Cordialement
Bonjour,
L'erreur se produit sur la fonction LogonUser et l'erreur m'indique que le compte ou le mot de passe est incorrect. Côté stratégie locale, tout est bon. J'effectue mes tests avec un compte adminitrateur local pour retirer tous les problèmes de stratégie.
Pouvez-vous indiquer à quel moment de votre code cela ne fonctionne pas ?
Pouvez-vous indiquer le code de l'erreur retourner par un
Marshal.GetLastWin32Error() ?
Avez-vous regardez au niveau des paramètres de stratégie locale de la
machine si l'utilisateur à le droit d'arrêter le système ? (Stratégies
locales>Attributions des droits utilisateur>Arrêter le système).
Cordialement
Bonjour,
L'erreur se produit sur la fonction LogonUser et l'erreur m'indique que
le compte ou le mot de passe est incorrect. Côté stratégie locale,
tout est bon. J'effectue mes tests avec un compte adminitrateur local
pour retirer tous les problèmes de stratégie.
Pouvez-vous indiquer à quel moment de votre code cela ne fonctionne pas ? Pouvez-vous indiquer le code de l'erreur retourner par un Marshal.GetLastWin32Error() ?
Avez-vous regardez au niveau des paramètres de stratégie locale de la machine si l'utilisateur à le droit d'arrêter le système ? (Stratégies locales>Attributions des droits utilisateur>Arrêter le système).
Cordialement
Bonjour,
L'erreur se produit sur la fonction LogonUser et l'erreur m'indique que le compte ou le mot de passe est incorrect. Côté stratégie locale, tout est bon. J'effectue mes tests avec un compte adminitrateur local pour retirer tous les problèmes de stratégie.
Pouvez-vous indiquer à quel moment de votre code cela ne fonctionne pas ? Pouvez-vous indiquer le code de l'erreur retourner par un Marshal.GetLastWin32Error() ?
Avez-vous regardez au niveau des paramètres de stratégie locale de la machine si l'utilisateur à le droit d'arrêter le système ? (Stratégies locales>Attributions des droits utilisateur>Arrêter le système).
Cordialement
Bonjour,
L'erreur se produit sur la fonction LogonUser et l'erreur m'indique que le compte ou le mot de passe est incorrect. Côté stratégie locale, tout est bon. J'effectue mes tests avec un compte adminitrateur local pour retirer tous les problèmes de stratégie.
"Sebastien Curutchet" <drq@section13.net> wrote in message
news:%23uGI9MQoHHA.3264@TK2MSFTNGP04.phx.gbl...
Gilles TOURREAU a écrit :
Pouvez-vous indiquer à quel moment de votre code cela ne fonctionne pas ?
Pouvez-vous indiquer le code de l'erreur retourner par un
Marshal.GetLastWin32Error() ?
Avez-vous regardez au niveau des paramètres de stratégie locale de la
machine si l'utilisateur à le droit d'arrêter le système ? (Stratégies
locales>Attributions des droits utilisateur>Arrêter le système).
Cordialement
Bonjour,
L'erreur se produit sur la fonction LogonUser et l'erreur m'indique que le
compte ou le mot de passe est incorrect. Côté stratégie locale, tout est
bon. J'effectue mes tests avec un compte adminitrateur local pour retirer
tous les problèmes de stratégie.
Pouvez-vous indiquer à quel moment de votre code cela ne fonctionne pas ? Pouvez-vous indiquer le code de l'erreur retourner par un Marshal.GetLastWin32Error() ?
Avez-vous regardez au niveau des paramètres de stratégie locale de la machine si l'utilisateur à le droit d'arrêter le système ? (Stratégies locales>Attributions des droits utilisateur>Arrêter le système).
Cordialement
Bonjour,
L'erreur se produit sur la fonction LogonUser et l'erreur m'indique que le compte ou le mot de passe est incorrect. Côté stratégie locale, tout est bon. J'effectue mes tests avec un compte adminitrateur local pour retirer tous les problèmes de stratégie.
LogonUser logue un utilisateur sur le poste local. Le compte local de l'ordinateur distant n'existe donc pas sur le poste ou est éxécuté LogonUser.
-- Cordialement,
Emmanuel Dreux.
"Sebastien Curutchet" wrote in message news:
Bonjour,
Je cherche à utiliser l'API LogonUser pour me connecter sur un poste avec un compte local du poste distant. J'ai essayé avec un compte du domaine, cela fonctionne parfaitement par contre si j'utilise un compte local à la machine cela ne marche plus.
Quelqu'un aurait il des pistes à ce sujet ?
Pour info voici mon code :
if (LogonUser(_strUsername, _strDomain, _strPassword, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out lnToken)) { System.Diagnostics.Trace.TraceInformation(" Logon succeed!");
if (DuplicateToken(lnToken, 2, out hTokenDuplicate)) { WindowsIdentity windowsIdentity = new WindowsIdentity(lnToken); WindowsImpersonationContext impersonationContext = windowsIdentity.Impersonate();
LogonUser logue un utilisateur sur le poste local.
Le compte local de l'ordinateur distant n'existe donc pas sur le poste ou
est éxécuté LogonUser.
--
Cordialement,
Emmanuel Dreux.
"Sebastien Curutchet" <drq@section13.net> wrote in message
news:uqgLGtqnHHA.4412@TK2MSFTNGP02.phx.gbl...
Bonjour,
Je cherche à utiliser l'API LogonUser pour me connecter sur un poste avec
un compte local du poste distant.
J'ai essayé avec un compte du domaine, cela fonctionne parfaitement par
contre si j'utilise un compte local à la machine cela ne marche plus.
Quelqu'un aurait il des pistes à ce sujet ?
Pour info voici mon code :
if (LogonUser(_strUsername, _strDomain, _strPassword,
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out lnToken))
{
System.Diagnostics.Trace.TraceInformation(" Logon succeed!");
if (DuplicateToken(lnToken, 2, out hTokenDuplicate))
{
WindowsIdentity windowsIdentity = new WindowsIdentity(lnToken);
WindowsImpersonationContext impersonationContext =
windowsIdentity.Impersonate();
LogonUser logue un utilisateur sur le poste local. Le compte local de l'ordinateur distant n'existe donc pas sur le poste ou est éxécuté LogonUser.
-- Cordialement,
Emmanuel Dreux.
"Sebastien Curutchet" wrote in message news:
Bonjour,
Je cherche à utiliser l'API LogonUser pour me connecter sur un poste avec un compte local du poste distant. J'ai essayé avec un compte du domaine, cela fonctionne parfaitement par contre si j'utilise un compte local à la machine cela ne marche plus.
Quelqu'un aurait il des pistes à ce sujet ?
Pour info voici mon code :
if (LogonUser(_strUsername, _strDomain, _strPassword, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out lnToken)) { System.Diagnostics.Trace.TraceInformation(" Logon succeed!");
if (DuplicateToken(lnToken, 2, out hTokenDuplicate)) { WindowsIdentity windowsIdentity = new WindowsIdentity(lnToken); WindowsImpersonationContext impersonationContext = windowsIdentity.Impersonate();
LogonUser logue un utilisateur sur le poste local. Le compte local de l'ordinateur distant n'existe donc pas sur le poste ou est éxécuté LogonUser.
Bonjour,
Je viens de trouver. Le problème provenait des paramètres de LogonUser. En fait pour que la connexion fonctionne que ce soit par authentification domaine ou bien compte local, j'ai remplacé le LOGON32_LOGON_INTERACTIVE (2)par LOGON32_LOGON_NEW_CREDENTIALS (9). La connexion s'effectue alors correctement dans les 2 cas.
Dans le cas d'une authentification domaine, la variable _strDomain contient le domain NT, dans le cas d'une authentification via un compte local, _strDomain contient le nom de la machine.
LogonUser logue un utilisateur sur le poste local.
Le compte local de l'ordinateur distant n'existe donc pas sur le poste
ou est éxécuté LogonUser.
Bonjour,
Je viens de trouver.
Le problème provenait des paramètres de LogonUser. En fait pour que la
connexion fonctionne que ce soit par authentification domaine ou bien
compte local, j'ai remplacé le LOGON32_LOGON_INTERACTIVE (2)par
LOGON32_LOGON_NEW_CREDENTIALS (9).
La connexion s'effectue alors correctement dans les 2 cas.
Dans le cas d'une authentification domaine, la variable _strDomain
contient le domain NT, dans le cas d'une authentification via un compte
local, _strDomain contient le nom de la machine.
LogonUser logue un utilisateur sur le poste local. Le compte local de l'ordinateur distant n'existe donc pas sur le poste ou est éxécuté LogonUser.
Bonjour,
Je viens de trouver. Le problème provenait des paramètres de LogonUser. En fait pour que la connexion fonctionne que ce soit par authentification domaine ou bien compte local, j'ai remplacé le LOGON32_LOGON_INTERACTIVE (2)par LOGON32_LOGON_NEW_CREDENTIALS (9). La connexion s'effectue alors correctement dans les 2 cas.
Dans le cas d'une authentification domaine, la variable _strDomain contient le domain NT, dans le cas d'une authentification via un compte local, _strDomain contient le nom de la machine.