Bonjour,

Je travaille sur une application en C# de type Windows Forms.
Cette application utilise des APIs pour se connecter à un logiciel extérieur et lancer des traitements dessus (HFM d'Hyperion-Oracle pour info).

Par défaut, mon code plante lorsque j'appelle la fonction de connexion de l'API. Pour que cela fonctionne, il faut que je modifie les propriétés par défaut de communication DCOM en mettant :
- Niveau d'authentification par défaut : Aucun
- Niveau d'emprunt d'identité par défaut : Anonyme

Pour ne pas dépendre de la configuration du poste sur lequel mon application va être déployée, j'aimerai gérer cette configuration dans mon code.

En me basant sur des exemples trouvés sur le net, j'ai écrit ceci mais cela ne fonctionne pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
WindowsIdentity CurrentIdentity = WindowsIdentity.GetCurrent();
WindowsImpersonationContext ImpersonatedUser = 
WindowsIdentity.GetAnonymous().Impersonate();
 
// Ma connexion
 
ImpersonatedUser.Undo();
Lorsque je veux appeler "Impersonate()" sur l'utilisateur anonyme j'obtiens une exception :
Une identité anonyme ne peut pas exécuter un emprunt d'identité.
Est-ce que quelqu'un saurait comment, par du code C#, reproduire la configuration manuelle que j'avais effectuée sur mon poste ?

Merci d'avance pour votre aide.