0

静的PDFファイルへのアクセスをログインユーザーのみに制限するように取り組んでいます。適切な資格情報を持たないリクエストが来た場合にのみ、リソースからのサーバー側リダイレクトを使用したいと思います。

を使用して値IHttpHandlerを設定することはできますpathが、ファイルを手動で提供する必要はありません。IHttpModuleモジュールが動作するファイルを制限するパスを設定できないことを除いて、ログインしたユーザーからのリクエストを、のように直接通過させたいです。

ハンドラーを介してリクエストを渡す方法、またはモジュールのパスを制限する方法はありますか?

編集

ログインが成功した場合にユーザーをリソースにリダイレクトする特定のクエリ文字列パラメーターを使用して、ユーザーをログインページにリダイレクトすることにも注意してください。

4

1 に答える 1

2

これらが本当に静的なリソース(ディスク上に存在する)である場合は、それらをフォルダーに貼り付け、web.config のlocation要素を使用してそのフォルダーを制限することができます。

<location path="MyPDFs">
   <system.web>
      <authorization>
         <deny users="?"/>
      </authorization>
   </system.web>
</location>

これにより、許可されていないユーザーがMyPDFsサイト内のフォルダーにあるファイルにアクセスできなくなります。

これらのファイルのサブセットのみが必要な場合は、サブディレクトリを作成し、同様の方法で保護できます。

<location path="PDF/SecureSubDirectory">
   <system.web>
      <authorization>
         <deny users="?"/>
      </authorization>
   </system.web>
</location>

アップデート:

ログインが成功した場合にユーザーをリソースにリダイレクトする特定のクエリ文字列パラメーターを使用して、ユーザーをログインページにリダイレクトすることにも注意してください。

ASP.Netでフォーム認証を使用する場合、これはすべてデフォルトで処理されます

ユーザーがまだ認証されていないために失敗したリソースのリクエストは、web.configで定義された構成済みのログインページに自動的にリダイレクトされます。

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="Logon.aspx" name=".ASPXFORMSAUTH">
    </forms>
  </authentication>
</system.web>

最初に要求されたリソースを参照するクエリ文字列パラメータを追加します。ユーザーが正常に認証されると、最初に要求したURLにリダイレクトされます。

これはすべてフレームワークに組み込まれています:)

于 2012-01-05T20:39:34.667 に答える