ここ、ここ、ここ、ここなど、このトピックに関するいくつかの質問を読みました。しかし、私の場合、実用的な解決策を提供したものはありません。
私がしたいこと:
自社の従業員のみが使用する Web アプリに Windows 認証を実装します。この方法では、アプリにログインする必要はありませんが、Windows にログインすることで既に認証されています。
また、ユーザーが割り当てられている可能性のある Active Directory セキュリティ グループに基づいて、アプリの特定の領域を制限する必要があります。
だから私はコントローラー/アクションを装飾できるようにしたい
[Authorize(Roles="SomeRole")]
私が試したこと:
私は持っている
<authentication mode="Windows" />
私のweb.configで。<roleManager>
そして、上記にリンクされた投稿のいくつかに見られるように、 a のいくつかの順列を追加しました。現在、私はこのロールマネージャーを持っています
<roleManager defaultProvider="WindowsProvider"
enabled="true"
cacheRolesInCookie="false">
<providers>
<add
name="WindowsProvider"
type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
この投稿にあるように。
そのままコントローラーを で飾れば[Authorize]
、ちゃんとアクセスできます。
でも:
ネットワークのユーザー設定で、「IT」と呼ばれる AD セキュリティ グループの一部であることがわかります。しかし、同じコントローラーを装飾すると[Authorize(Roles="IT")]
、asp.net 開発サーバーによって許可されていない 401 が提供される空白の画面が表示されます。 これは予想外です。 Windows にログインしていて、グループ "IT" の一員であるため、ページを表示できるはずだと思います。
このトピックで私が見つけたほとんどすべてのことは、私がやろうとしていることを非常に簡単に達成できるように思えますが、明らかに何かが欠けています.