0

IIS6、ASP.NET Web サイト ( SiteA、FW 2.0) および静的コンテンツを含む Web サイト ( SiteB )を使用したアクセス制限に関するソリューションを探しています。

問題/前提条件:

  • SiteAに認証されたユーザーは、 SiteBの静的コンテンツにアクセスできる必要があります。
  • SiteBへの認証されていないアクセスは、SiteAのログイン スクリプトにリダイレクトする必要があります。
  • SiteAはレガシ コードであるため、ASP.NET の認証メカニズムを使用しません。SiteAIsAuthenticated() = 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

任意の提案をいただければ幸いです。ありがとう。

4

1 に答える 1