2016-07-25 7 views
0

c#を使用して、ユーザーが管理者であるかどうかをアクティブディレクトリで確認するにはどうすればよいですか?異なる言語でこの役割名が異なっているので、彼のグループ名を取得することは、オプションではありません(администраторы、管理者など)アクティブディレクトリ - そのユーザーが管理者であることを確認するc#

+0

番目のユーザーが管理者であるか、ない場合は、プログラム自体からチェックすることを意味しますか? 私はアクティブディレクトリについて知りません。 – Slashy

+0

私はイントラネットサイトを持っています。ユーザーはWindows認証でそこにログインします。管理者かどうか - 彼はどのくらいの権限を持ちますか。アクティブなディレクトリは、ユーザーの役割を取得する方法です –

答えて

0

ヴラド、

Adminグループのメンバーを取得するために、ADのクエリは前に頼まれてい... 。

Server 2003のhereなどthis too

あなたの質問がインストールされている言語で「管理者」のための文字列を区別心配するようですので、あなたは単にあなたに、このためのロケール固有の名前を持っていないだろうレソurces/code?

0

c#を使用して、アクティブなディレクトリでユーザーがadminかどうかを確認するにはどうすればよいですか?私は、「Active Directoryで管理者が」ADのリテラル管理者(すなわち。組み込みAdministratorsグループのメンバー)を意味することを前提とし

ビルトインAdministratorsグループ常には同じRIDを持つことになります(相対識別子) - オブジェクトのセキュリティ識別子の最後の部分 - 544

Administratorsグループがそのために簡単です見つける確実な方法:

  1. デフォルトのルートオブジェクトのためのDirectoryEntryをインスタンス化NC
  2. ルートオブジェクト
  3. にするobjectSID属性値を読みますよく知られているRIDを追加する(-544
  4. 結果のSIDに基づいてDirectoryEntryをインスタンス化する(可能です)

DirectoryEntry dnc = new DirectoryEntry("LDAP://corp.domain.tld"); 
SecurityIdentifier domainSID = new SecurityIdentifier(dnc.Properties["objectSid"].Value); 

string administratorsGroupSID = String.Format("{0}-544", domainSID); 
string administratorsGroupSIDPath = String.Format("LDAP://<SID={0}>", administratorsGroupSID); 

DirecoryEntry AdministratorsGroupDE = new DirectoryEntry(administratorsGroupSIDPath); 

グラブは

関連する問題