我的应用程序中有一个HttpModule,它使用以下代码挂接到FormsAuthenticationModule的Authenticate事件中:
public void Init(HttpApplication context)
{
FormsAuthenticationModule faModule =
(FormsAuthenticationModule)context.Modules["FormsAuthentication"];
faModule.Authenticate +=
new FormsAuthenticationEventHandler(faModule_Authenticate);
}
不幸的是,对context.Modules的调用失败,因为该应用程序需要在中等信任的环境中运行。我还有其他方法可以参与此活动吗?
最佳答案
这很困难-您甚至无法从Global应用程序文件中访问Modules集合。
您可以尝试在Global中的AuthenticateRequest处理程序中调用自定义代码:
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
// Call your module's code here..
}
您也无法从集合中获取自定义模块,因此您需要对模块库的静态引用。
除了在计算机级别的web.config中将AspNetHostingPermission(as detailed for other permissions here)授予您的站点之外,我没有其他想法了!