0

Webアプリケーションを作成していて、管理者ユーザーを認証しようとしています。ドメインユーザーを追加するサーバー上にローカルグループを作成することで、これを実現したいと考えていました。ProductionManagers管理者権限を持つユーザーを追加するというグループがあります。他のユーザーは表示専用アクセス権を持っています。

私がやりたいのは、サーバー上のAD(右?)を検索クエリして、現在ログインしているユーザーがProductionManagersグループのメンバー(ドメイングループではなくサーバー上のグループ)であるかどうかを確認することです。

これを行うための最良の方法は何ですか?それとも、私が管理者を追加するローカルグループを持つよりも優れたメカニックについての提案がありますか?

4

1 に答える 1

0

ASP.NET とフォーム認証を使用している場合、

WindowsPrincipal principal = new WindowsPrincipal(new WindowsIdentity("youruser@domain.com"));
if (principal.IsInRole("ProductionManagers"))
{
   // Authenticated
}

ASP.NET および Windows 認証を使用している場合、

WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
if (principal.IsInRole("ProductionManagers"))
{
   // Authenticated
}

Java、PHP、Ruby などを使用する場合は、.NET API または Win32 API を呼び出す必要があります。その情報を取得するために単純に LDAP クエリを作成することはできません。これは、ローカル グループのグループ メンバーシップ情報が実際にはローカル マシンに格納されているが、その Active Directory には格納されていないためです。

ローカル ストアからグループ メンバーシップ情報を取得するには、NetLocalGroupGetMembersなどを呼び出す必要があります。

于 2012-06-23T19:54:57.537 に答える