3

IIS7 で静的コンテンツの統合認証モードを試しています。この記事の指示に従いました: http://aspnet.4guysfromrolla.com/articles/122408-1.aspx (記事のように) ログイン ステータスでアクセスを許可/拒否すると、正常に動作します。ただし、ロールに基づいてアクセスを許可/拒否したい (ロール プロバイダーに組み込まれた ASP.NET を使用)。web.config でロール「管理者」の許可ルールを設定し、他のすべてのユーザーのルールを拒否すると、管理者としてログインしても静的ファイルにアクセスできません。同じフォルダーには、ロール プロバイダー情報に基づいて適切にアクセスされる非静的コンテンツ (aspx ページ) が含まれています。

何か案は?

4

2 に答える 2

5

<system.webServer> <modules>以下をブロックに追加してみてください。

<configuration>
  <system.webServer>
    <modules>
      <remove name="FormsAuthentication" />
      <add name="FormsAuthentication" 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" />
      <remove name="RoleManager" />
      <add name="RoleManager" type="System.Web.Security.RoleManagerModule" />
    </modules>
  </system.webServer>
</configuration>

ビットが重要であり、RoleManager私が見つけたオンラインの例には含まれていません。これがないと、ユーザーのロール メンバーシップが静的コンテンツ用に初期化されないため、ロール ベースの承認は常に失敗します。

(免責事項: IIS についての私の限られた理解に基づいて、これを自分でつなぎ合わせましたが、うまくいくようです。)

編集(コメントへの返信): 申し訳ありませんが、RoleManager が他のモジュールにどのように依存しているかについてはよくわかりません。デフォルトの IIS 構成を表示するにはc:\Windows\System32\inetsrv\config\applicationHost.config(少なくとも、私の Windows Vista マシンでは過去のことです)、モジュールがロードされる順序を確認します (デフォルトでmanagedHandlerを使用して、RoleManager を非静的コンテンツに制限していることに注意してください)。また、MSDN は、 RoleManagerModuleとSystem.Web.Security名前空間の残りのモジュールをカバーしているため、必要なものが見つかる可能性があります。

于 2010-11-02T20:29:46.660 に答える
0

最も可能性の高い原因は、静的ファイルが ASP.NET によって処理されておらず、IIS に任せられていることです。

ワイルドカード スクリプト マッピングを追加すると機能しますか?

于 2009-07-09T22:34:04.233 に答える