Come posso collegarmi al modulo FormsAuthenticationModule corrente in un ambiente con attendibilità media?
-
08-07-2019 - |
Domanda
Ho un HttpModule nella mia applicazione che si aggancia all'evento Authenticate di FormsAuthenticationModule con il seguente codice:
public void Init(HttpApplication context)
{
FormsAuthenticationModule faModule =
(FormsAuthenticationModule)context.Modules["FormsAuthentication"];
faModule.Authenticate +=
new FormsAuthenticationEventHandler(faModule_Authenticate);
}
Sfortunatamente, la chiamata a context.Modules fallisce perché l'app deve essere eseguita in un ambiente di media fiducia. C'è un altro modo in cui posso collegarmi a questo evento?
Soluzione
È difficile: non è nemmeno possibile accedere alla raccolta Moduli dal file dell'applicazione globale.
Potresti provare a chiamare il tuo codice personalizzato dal gestore AuthenticateRequest in Global:
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
// Call your module's code here..
}
Non puoi neanche prendere il tuo modulo personalizzato dalla collezione, quindi avresti bisogno di un riferimento statico alla libreria del tuo modulo.
Oltre a garantire AspNetHostingPermission ( come dettagliato per altre autorizzazioni qui ) al tuo sito nel web.config a livello di macchina, non ho più idee!