2

IIS7で匿名認証が有効になっているフォーム認証を使用するサイトがあります。

ただし、上記の設定では、誰もがこのサイト内の CSS、JavaScript、Html などの静的ファイルにアクセスできます。

匿名認証を無効にすると、ユーザーはまだログインしていないため、ログイン ページにアクセスできません。

私の理解では、フォーム認証は匿名認証を有効にして機能する必要があります。

では、すべてのリソース ファイルを保護するにはどうすればよいでしょうか。

ありがとう !

4

2 に答える 2

3

フォーム認証によってすべてのファイルを保護するには、すべての要求をasp.netパイプラインを介してルーティングします。これはIISのデフォルトの動作ではありません。静的コンテンツであるファイルの場合、IISは通常、サイトレベルで説明されている設定(つまり、匿名、基本、Windows、ダイジェスト)に基づいてファイルを配布します。

あなたは私が言ったことをすることができますが、なぜあなたがこれをしたいのか疑問に思うでしょう。これにより、.NETパイプラインが各ファイルの処理を開始して、ファイルを提供するかどうかを決定するため、オーバーヘッドが追加されます。

実行可能ですが、お勧めしません。

于 2012-09-17T19:17:04.663 に答える
0

私はちょっと答えを見つけると思います。

@Joshの回答に基づいて、アプリケーション全体にフォーム認証を使用する方法について説明しているこのページを見つけました。

私はそれが私が望むように機能すると思います。

  1. Url Authorization 機能をインストールする必要があります

  2. 以下を web.config に追加します

    < system.webServer>

    <モジュール>

    < remove name="FormsAuthenticationModule" />

    < add name="FormsAuthenticationModule" type="System.Web.Security.FormsAuthenticationModule" />

    < remove name="UrlAuthorization" />

    < add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" />

    < remove name="DefaultAuthentication" />

    < add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" />

于 2012-09-17T20:17:57.903 に答える