3

次のコードでFormsAuthenticationModuleのAuthenticateイベントにフックするHttpModuleがアプリケーションにあります。

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

残念ながら、アプリは中程度の信頼性の環境で実行する必要があるため、context.Modulesの呼び出しは失敗します。このイベントに参加する別の方法はありますか?

4

1 に答える 1

3

これは難しい問題です。グローバル アプリケーション ファイル内から Modules コレクションにアクセスすることさえできません。

グローバルの AuthenticateRequest ハンドラーからカスタム コードを呼び出すことができます。

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

コレクションからカスタム モジュールを取得することもできないため、モジュールのライブラリへの静的参照が必要になります。

マシン レベルの web.config でサイトにAspNetHostingPermission (他のアクセス許可の詳細についてはこちら) を付与する以外に、アイデアがありません。

于 2009-01-10T20:39:07.870 に答える