IIS6、ASP.NET Web サイト ( SiteA、FW 2.0) および静的コンテンツを含む Web サイト ( SiteB )を使用したアクセス制限に関するソリューションを探しています。
問題/前提条件:
- SiteAに認証されたユーザーは、 SiteBの静的コンテンツにアクセスできる必要があります。
- SiteBへの認証されていないアクセスは、SiteAのログイン スクリプトにリダイレクトする必要があります。
- SiteAはレガシ コードであるため、ASP.NET の認証メカニズムを使用しません。SiteA
IsAuthenticated() = true/false
の認証状況を確認する方法があります。 - 私はまだ自由にSiteBをどこにでも配置できます (ソリューションによって異なります): SiteAのディレクトリ構造または別の場所、おそらく別のサーバー
考えられる解決策 / 仕組み:
- SiteBはSiteAディレクトリ構造に配置されます(例
SiteA-Root/subfolder/SiteB-Root
) - IIS はディレクトリへのリクエストをインターセプトする必要があります
SiteA-Root/subfolder/SiteB-Root
IsAuthenticated == true
IIS は、要求ごとに次の場合にアクセスを許可します。SiteA-Root/subfolder/SiteB-Root
- それ以外の場合、IIS はSiteAのログイン ページにリダイレクトします。
私がまだ試したこと:
- IIS-UrlRewrite を使用して、 SiteBへのすべてのリクエストをガード スクリプトにリダイレクトします。
SiteA/Interceptor.aspx?referer=<Url of requested content of SiteB>
Interceptor.aspx
そうでない場合はロード<Url of requested content of SiteB>
するIsAuthenticated() == true
か、ログインページにリダイレクトしますInterceptor.aspx
ロードされたストリームを独自の応答に書き込みます- 問題:
- 読み込まれたSiteBページの相対リンクが機能しなくなりました -> 解析が必要です (?)
- SiteBへのすべての要求がによって処理されるため、処理が重い
Interceptor.aspx
任意の提案をいただければ幸いです。ありがとう。