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 == trueIIS は、要求ごとに次の場合にアクセスを許可します。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
任意の提案をいただければ幸いです。ありがとう。