FormsAuthenticationModule

FormsAuthenticationModule

我的应用程序中有一个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)授予您的站点之外,我没有其他想法了!

07-26 00:21