5

標準のasp.netmvc4イントラネットプロジェクトを起動して、コントローラーまたはメソッドを次のようなもので装飾できます。

[System.Web.Mvc.Authorize(Roles = "MyApp Users")]

私はそれをテストしました、そしてそれは完全に動作します(私のドメインアカウントはActiveDirectoryの「MyAppユーザー」のメンバーであるため)

しかし、私の問題/質問は、「ホットタオル」アプリケーションで同じタイプの動作をどのように取得するかです。そよ風コントローラー、HotTowelコントローラー、または同じ属性を持つ任意のメソッドを装飾しようとしましたが、認証できません...何が得られますか?

あなたの助けは大歓迎です。

4

1 に答える 1

5

ついにそれを理解した。これが他の人にも役立つことを願っています。

まず、次のようにWindowsProviderをroleManagerとして設定する必要があります。

<roleManager defaultProvider="WindowsProvider"
   enabled="true"
   cacheRolesInCookie="false">
  <providers>
    <add
      name="WindowsProvider"
      type="System.Web.Security.WindowsTokenRoleProvider" />
  </providers>
</roleManager>

次に、[Roles.IsUserInRole()を使用して]ユーザーのロールを確認できます。より具体的には、この質問に対して、authorize属性を使用します。唯一のことは、次のように、authorize属性にドメインを含める必要があるということです。

[System.Web.Mvc.Authorize(Roles = "YourDomain\\MyApp Users")]

そして今、すべてがあなたが期待するように機能します。

于 2013-04-17T23:19:44.223 に答える