Como posso ligar para o FormsAuthenticationModule atual em um ambiente de confiança média?
-
08-07-2019 - |
Pergunta
Eu tenho um HttpModule no meu aplicativo que ganchos para evento Authenticate do FormsAuthenticationModule com o seguinte código:
public void Init(HttpApplication context)
{
FormsAuthenticationModule faModule =
(FormsAuthenticationModule)context.Modules["FormsAuthentication"];
faModule.Authenticate +=
new FormsAuthenticationEventHandler(faModule_Authenticate);
}
Infelizmente, a chamada para context.Modules falha porque o aplicativo precisa ser executado em um ambiente de confiança média. Existe outra maneira que eu posso ligar para este evento?
Solução
Essa é uma pergunta difícil -. Você não pode sequer acessar a coleção de módulos de dentro do seu arquivo de aplicação global
Você poderia tentar chamar o seu código personalizado a partir do manipulador AuthenticateRequest da Global:
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
// Call your module's code here..
}
Você não pode pegar o seu módulo personalizado da coleção, ou, então, você precisa de uma referência estática a biblioteca do módulo.
Além de conceder a AspNetHostingPermission ( conforme detalhado para outras permissões aqui ) para o seu site no web.config nível da máquina, eu estou fora de ideias!