2013-12-20 12 views
13

私は社内で使用するために企業環境にMVC4アプリケーションを構築しています。私は正常に動作するWindows認証を使用しますが、私はActive Directoryグループを権限の役割として使用しているときに問題を抱えています。アクティブディレクトリの役割プロバイダMVC4を使用した承認

私の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(); 
} 

私は他のre私はWeb.configで何かが欠けていると思いますが、どういうことがわかりません...

MVC4が達成しようとしているので、私はカスタムロールプロバイダを使用することを避けていましたこれはカスタムロールプロバイダなし(または少なくとも私が思ったもの)

誰もがこれを手伝ってくれますか?

ありがとうございます!

答えて

16

問題が見つかりました。 machine.configについての情報を読んだら、here私は正しい設定が既に適用されていることを確認しました。 Fianlly私はそれだけで、このように作業してしまった

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

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

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

+0

ああ、ダブルバックスラッシュ!私はこれを数時間お手伝いしてきました - Cheers –

+1

@ D.Mac - 標準のC#文字列の書式設定/エスケープ: "Domain \\ Group"または@ "Domain \ Group" https://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx –

+3

バックラッシュは構文上の問題であるため、理由や意味の違いはありません – Mzn

関連する問題