Domanda

Sto tentando di utilizzare Windsor e NHibernate in un ambiente di media fiducia e sto incontrando alcuni problemi con le autorizzazioni. Ho letto le altre domande su questo, ma sto usando la struttura NHibernate di Windsor di cui non ho mai discusso.

Per qualche motivo esiste una dipendenza dall'assemblaggio Castle.Service.Transations all'avvio del contenitore. Questo quindi tenta di creare e istanza di:

Castle.Services.Transaction.CallContextActivityManager()

Viene sollevata un'eccezione di sicurezza quando CallContextActivityManager si stanca per utilizzare SetData in System.Runtime.Remoting.Messaging.CallContext che è consentito solo se si dispone dell'autorizzazione per l'infrastruttura. Immagino che le app di media fiducia non lo facciano.

Qualcuno sa come risolvere questo problema di sicurezza con un livello di affidabilità medio? Devo scaricare la struttura NHibernate e registrarla manualmente con il contenitore?

È stato utile?

Soluzione

Puoi aggirare ciò registrando TLSActivityManager nel contenitore (per tipo IActivityManager). DefaultTransactionManager (utilizzato da NHibernateIntegrationFacility) utilizzerà quindi questo ActivityManager invece di attivare un nuovo CallContextActivityManager.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top