3

我的应用程序中有一个 HttpModule,它使用以下代码连接到 FormsAuthenticationModule 的 Authenticate 事件:

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

不幸的是,对 context.Modules 的调用失败,因为应用程序需要在中等信任环境中运行。还有其他方法可以让我参与此活动吗?

4

1 回答 1

3

这很难——您甚至无法从全局应用程序文件中访问 Modules 集合。

您可以尝试从 Global 中的 AuthenticateRequest 处理程序调用您的自定义代码:

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

您也无法从集合中获取自定义模块,因此您需要对模块库的静态引用。

除了在机器级别的 web.config 中向您的站点授予 AspNetHostingPermission (详见此处的其他权限)之外,我没有想法!

于 2009-01-10T20:39:07.870 回答