0

Windows 認証を使用するアプリケーションでは、SQL に保存されているユーザー ロール/メンバーシップを手動で作成しています (web.config で有効になっている System.Web.Security.SqlRoleProvider)。

 <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="connMembership" applicationName="/" />

しかし今、アプリケーションをリリースしているので、会社の Active Directory グループを使用するように変更する必要があります。

<add name="AspNetActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADService" attributeMapUsername="sAMAccountName"   />

    <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />

2 つの質問があります (申し訳ありませんが、私はこれらすべてにまったく慣れていません!)

1) web.config で ActiveDirectoryMembershipProvider と WindowsTokenRoleProvider を使用している場合、アプリの別のページへのユーザー アクセスを制限するにはどうすればよいですか? (つまり、Roles.IsUserInRole(username, "ADGroupName") を使用している唯一の方法ですか?

2) Active Directory を使用して「管理者」のような役割を作成するにはどうすればよいですか? 以前 (まだ SqlRoleProvider を使用していたとき)、すべてのページ/機能にアクセスできる SQL に自分自身を追加するための管理者グループを自分で作成できたので、質問しています。

i.e Roles.AddUserToRole(userName, Admin). 

しかし今、私は制限された AD グループの一員であるため、何らかの形式の管理者セキュリティ グループを上書きして自分自身を追加する方法がわかりません。

アドバイスをいただければ幸いです!!

ありがとう!

4

1 に答える 1

0

これはあなたの質問に答えるものです。ページへのアクセスを制限する別の方法がある場合は、Web.config からできます。

Web.Config ファイルでは、各ページに次を追加できます。

<authentication mode="Windows" />

<location path="MyPage1.aspx">
    <system.web>
      <authorization>
        <allow roles="ActiveDirectoryRoleName" />
        <allow users="DOMAIN\USER1, DOMAIN\USER2" />
        <deny users="*" />
      </authorization>
    </system.web>
</location>

または、Web サイトに対してグローバルに制限を設定する場合は、次のようにします。

<authentication mode="Windows" />

<authorization>
    <allow roles="ActiveDirectoryRoleName" />
<allow users="DOMAIN\USER1, DOMAIN\USER2" />
    <deny users="*" />
</authorization>
于 2012-12-04T06:26:47.123 に答える