Impersonation.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Web;
  4. using System.Runtime.InteropServices;
  5. namespace CG67.FicheCollege.Tools
  6. {
  7. /// <summary>
  8. /// Ensemble de méthodes pour gérer l'impersonification
  9. /// </summary>
  10. public static class Impersonation
  11. {
  12. /// <summary>
  13. /// Permet de créer un jeton d'authentification
  14. /// </summary>
  15. /// <param name="principal">Le compte à utiliser</param>
  16. /// <param name="authority">Le domaine du compte</param>
  17. /// <param name="password">Le mot de passe</param>
  18. /// <param name="logonType">Le type d'ouverture de session</param>
  19. /// <param name="logonProvider">Le fournisseur de jeton</param>
  20. /// <param name="token">Le jeton à récupérer</param>
  21. /// <returns>Un booléen indiquant le résultat de l'opération</returns>
  22. [DllImport("advapi32.dll", SetLastError = true)]
  23. public static extern bool LogonUser(
  24. string principal,
  25. string authority,
  26. string password,
  27. LogonSessionType logonType,
  28. LogonProvider logonProvider,
  29. out IntPtr token);
  30. /// <summary>
  31. /// Ferme un handle sur un objet
  32. /// </summary>
  33. /// <param name="handle">Un handle valide pour ouvrir un objet</param>
  34. /// <returns>Retourne un résultat différent de 0 en cas de réussite</returns>
  35. [DllImport("kernel32.dll", SetLastError = true)]
  36. public static extern bool CloseHandle(IntPtr handle);
  37. }
  38. }