企業環境で内部使用するためのMVC4アプリケーションを構築しています。 Windows認証を使用していますが、これは正常に機能しますが、承認の役割としてActiveDirectoryグループを使用する際に問題が発生します。
私のWeb.configは次のようになります。
<authentication mode="Windows" />
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
<providers>
<clear />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
<authorization>
<deny users="?" />
</authorization>
ユーザー認証を使用すると、正常に機能します。
[Authorize(Users = @"DOMAIN\User1, DOMAIN\User2")]
public ActionResult Create()
{
return View();
}
ただし、ロールを使用すると、そのグループのユーザーがこのアクションにアクセスできなくなります。
[Authorize(Roles = @"Domain\Group")]
public ActionResult Create()
{
return View();
}
他の返信で読んだように、ドメインなしでグループを指定しようとしましたが、運がありません... Web.configに何かが欠けていると思いますが、何がわかりません...
MVC4はカスタムロールプロバイダーなしでこれを実現することになっているため、カスタムロールプロバイダーの使用を避けていました(または少なくともそれは私が思っていたものです)
誰かがこれで私を助けることができますか?
前もって感謝します!
どちらが問題なのかわかりました。 machine.configに関する情報を読んだ後 ここ 正しい構成がすでに適用されていることを確認しました。
Fianlly私はそれをこのように動作させました:
[Authorize(Roles = "Domain\\Group")]
public ActionResult Create()
{
return View();
}
問題は、グループの入力方法でした。
これが他の人の役に立つことを願っています。