Bonjour,
Est il possible de transmettre ou partager un IIDentity entre plusieurs domaines?
Je m'explique : nous avons développé un logiciel dans lequel nous créons un GenericIdentity (l'authentification est faite à l'aide de la DB et non à l'aide du WindowsIdentity) que nous chargeons dans le System.Threading.Thread.CurrentPrincipal.Identity du thread principal de l'application.
Dans notre application nous utilisons aussi le CLR Add-In permettant de charger des plugins de manière isolée dans un nouveau Domaine (pour faire court).
Mon problème est que mes plugins ont besoin de connaitre l'utilisateur qui exécute l'application afin de faire différents contrôles d'accès et opérations en DB.
System.Threading.Thread. etant lié au domaine de l'application, l'information n'est donc pas disponible pour mes plugins.
De plus pour le moment je veux éviter de faire passer l'IIdentity par paramètre lors de l'appel des plugins. Je cherche donc une solution pour stocker mon IIdentity quelquepart qui serait accessible pour tout le monde plugins et Application.
Ou si quelqu'un connait bien le CLR ADD-IN me dire comment on peux gérer et partager ce type d'info entre application et plugins.
Dans le même genre une autre question : dans un même domaine lorsque l'on développe des threads, comment s'assurer que ceux-ci récupèrent bien l'IIendity dans le thread principal. Parce que là aussi a chaque thread créé de je suis obligé avant d'exécuter mon code asynchrone de redéfinir le System.Threading.Thread.CurrentPrincipal sinon je le paume, ce qui est assez fastidieux vu le nombre de traitements asynchrones que l'on fait. Y a t'il un moyen de "partager" (stocker dans le domaine ou autre ou definir par defaut pour tous les threads) cette information pour faciliter le développement ?
Merci d'avance,
2020
Partager