0

現在ログインしているドメインの管理者のみがアクセスできる ASP.NET 動的データ サイトがあります。ログインに基づいてユーザーが誰であるかをサイトで識別し、資格情報を要求することなくアクセスを許可または拒否できるようにしたいと考えています。動的データ サイトの性質上、誰も自分のやり方を見つけられないことを確認したいので、web.config ではなく IIS で認証と承認を管理したいと考えています。しかし、私が何をしても、管理者であってもアクセスを拒否します。

64 ビットの Windows Server 2008 R2 Standard マシンで IIS7 を使用しています。サイトをクリックして認証に移動すると、Windows 以外のすべてのモードが無効になりました。

利用可能な 3 つのプロバイダーはすべて、次の順序で有効になります。

Negotiate:Kerberos
Negotiate
NTLM

承認では、匿名ユーザーを拒否してからすべてのユーザーを許可する拒否ルールを追加しました。最終的にはロール管理者を許可するように変更しますが、これが機能するようになったら変更できます。

私は何が欠けていますか?重要な場合は、Web サーバー、ドメイン コントローラー、ページが置かれているファイル サーバーがすべて同じドメインにあります。

4

1 に答える 1

1

次の小さなコード スニペットを使用することをお勧めします。

Public Function GetGroups() As ArrayList
    Dim groups As New ArrayList()
    For Each group As System.Security.Principal.IdentityReference In System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups
        groups.Add(group.Translate(GetType(System.Security.Principal.NTAccount)).ToString())
    Next
    Return groups
End Function

これにより、現在の Windows ユーザーが属しているすべてのグループが返されます。これにより、管理者グループが配列リストにあるかどうかを確認し、そうでない場合はリダイレクトすることができます。

したがって、他のアクセス拒否/許可をドロップし、それらが管理者グループにあるかどうかを使用してアクセスを決定します。

構成ファイルに以下が含まれていることを確認する必要があります。

<system.webServer>
...etc
  <security>
...etc
    <authentication>
      <windowsAuthentication enabled="true" />
    </authentication>
...etc
  </security>
...etc
</system.webServer>
于 2012-10-05T14:08:51.427 に答える