Comment puis-je accéder au module FormsAuthenticationModule actuel dans un environnement de confiance moyenne?

StackOverflow https://stackoverflow.com/questions/431644

Question

J'ai dans mon application un module HttpModule qui se connecte à l'événement Authenticate du FormsAuthenticationModule avec le code suivant:

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

Malheureusement, l'appel à context.Modules a échoué car l'application doit s'exécuter dans un environnement de confiance moyenne. Existe-t-il un autre moyen de participer à cet événement?

Était-ce utile?

La solution

C’est un problème difficile: vous ne pouvez même pas accéder à la collection de modules à partir de 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 extraire votre module personnalisé de la collection, vous avez donc besoin d'une référence statique à la bibliothèque de votre module.

Autre que l’octroi de AspNetHostingPermission ( comme indiqué pour d'autres autorisations ici ) sur votre site Web au niveau de la machine web.config, je suis à court d’idées!

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