3

J'ai un HttpModule dans ma demande que les crochets dans le cas Authentifier de FormsAuthenticationModule avec le code suivant:Comment puis-je me connecter au FormsAuthenticationModule actuel dans un environnement Trust moyen?

public void Init(HttpApplication context) 
{ 
    FormsAuthenticationModule faModule = 
     (FormsAuthenticationModule)context.Modules["FormsAuthentication"]; 
    faModule.Authenticate += 
     new FormsAuthenticationEventHandler(faModule_Authenticate); 
} 

Malheureusement, l'appel à context.Modules échoue parce que l'application doit fonctionner dans un milieu de confiance environnement. Y a-t-il un autre moyen de m'accrocher à cet événement?

Répondre

3

Difficile - vous ne pouvez même pas accéder à la collection Modules depuis votre fichier d'application Global.

Vous pouvez essayer d'appeler votre code personnalisé à partir du gestionnaire AuthenticateRequest dans Global:

protected void Application_AuthenticateRequest(object sender, EventArgs e) 
{ 
    // Call your module's code here.. 
} 

Vous ne pouvez pas saisir votre module personnalisé de la collection, que ce soit, de sorte que vous auriez besoin d'une référence statique au module de bibliothèque.

Mis à part l'octroi de la fonction AspNetHostingPermission (as detailed for other permissions here) à votre site au niveau machine web.config, je n'ai plus d'idées!

+0

Si vous cochez la propriété Modules dans la classe HttpApplication dans System.Web via Reflector, vous pouvez voir la demande CAS pour un niveau de confiance élevé. Malheureusement, je connais la réponse de mon hébergeur à demander: "Nous avons ces merveilleux serveurs VPS/Dédié!" :( –

+0

Oui, l'hébergement verrouillé est un problème - et je suppose que votre module est une tierce partie? –

+0

Non, c'est le mien, donc je peux mettre le code ailleurs, j'espérais juste le garder séparé. –

Questions connexes