web-dev-qa-db-ja.com

ActiveDirectoryロールプロバイダーMVC4を使用した承認

企業環境で内部使用するための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はカスタムロールプロバイダーなしでこれを実現することになっているため、カスタムロールプロバイダーの使用を避けていました(または少なくともそれは私が思っていたものです)

誰かがこれで私を助けることができますか?

前もって感謝します!

15
Roberto

どちらが問題なのかわかりました。 machine.configに関する情報を読んだ後 ここ 正しい構成がすでに適用されていることを確認しました。

Fianlly私はそれをこのように動作させました:

[Authorize(Roles = "Domain\\Group")]
public ActionResult Create()
{
    return View();
}

問題は、グループの入力方法でした。

これが他の人の役に立つことを願っています。

19
Roberto