Question

J'essaie d'utiliser Windsor et NHibernate dans un environnement de confiance moyenne et je rencontre des problèmes d'autorisations. J'ai lu les autres questions à ce sujet, mais j'utilise l'installation NHibernate de Windsor, ce que je n'ai pas vu discuter.

Pour une raison quelconque, il existe une dépendance à l'égard de l'assembly Castle.Service.Transations au démarrage du conteneur. Ceci tente ensuite de créer et une instance de:

Castle.Services.Transaction.CallContextActivityManager()

Une exception de sécurité est déclenchée en tant que CallContextActivityManager fatiguée pour utiliser SetData dans System.Runtime.Remoting.Messaging.CallContext, qui n'est autorisé que si vous disposez d'une autorisation d'infrastructure. Je suppose que les applications de confiance moyenne ne le font pas.

Quelqu'un sait-il comment résoudre ce problème de sécurité en confiance moyenne? Dois-je vider l’installation NHibernate et l’enregistrer manuellement avec le conteneur?

Était-ce utile?

La solution

Vous pouvez contourner ce problème en enregistrant TLSActivityManager dans le conteneur (pour le type IActivityManager). Le DefaultTransactionManager (utilisé par NHibernateIntegrationFacility) utilisera ensuite ce ActivityManager au lieu de déclencher un nouveau CallContextActivityManager.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top