質問

次のコードでFormsAuthenticationModuleのAuthenticateイベントにフックするHttpModuleをアプリケーションに持っています:

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

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

役に立ちましたか?

解決

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

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

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

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

AspNetHostingPermissionの付与以外(他の権限の詳細はこちら)マシンレベルのweb.configのサイトに移動しましたが、アイデアがありません!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top