次のような例がありますか。Active Directoryでのユーザー/グループのアクセス許可
- ユーザーをActive Directoryからプルします。
- ユーザーが所属するグループを取得します。
- 各グループに割り当てられているアクセス許可の一覧を取得します。
これは単純なタスクのようですが、私は解決策を見つけることができません。
全体的な目標は、カスタムアクセス許可を割り当てて、アプリケーション内のアクセス権を制御することです。
次のような例がありますか。Active Directoryでのユーザー/グループのアクセス許可
これは単純なタスクのようですが、私は解決策を見つけることができません。
全体的な目標は、カスタムアクセス許可を割り当てて、アプリケーション内のアクセス権を制御することです。
.NET 3.5以降の場合は、System.DirectoryServices.AccountManagement
(S.DS.AM)名前空間を確認する必要があります。ここではそれについてのすべてを読む:
基本的に、あなたはドメインコンテキストを定義し、簡単にADのユーザーおよび/またはグループを見つけることができます:
// set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName");
if(user != null)
{
// do something here....
}
// find the group in question
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere");
// if found....
if (group != null)
{
// iterate over members
foreach (Principal p in group.GetMembers())
{
Console.WriteLine("{0}: {1}", p.StructuralObjectClass, p.DisplayName);
// do whatever you need to do to those members
}
}
新しいS.DS.AMにより、ADのユーザーやグループで簡単に遊ぶことができます。
最後のポイント:権限。これらはActive Directoryに格納されていないため、ADコードからそれらを取得することはできません。
権限は個々のファイルシステム項目に格納されます。ファイルやディレクトリ、またはその他のオブジェクト(レジストリキーなど)を含むことがあります。 ADグループまたはユーザーアカウントを持っている場合、そのSID(セキュリティ識別子)プロパティーを読むことができます.SIDはWindowsのACL(アクセス制御リスト)に表示されますが、ユーザーまたはグループからは、すべてを取得するメカニズムはありませんマシン/サーバーのどこにいてもかまいません。
ファイルとディレクトリのパーミッションは、 FileInfo
とDirectoryInfo
クラスに.GetAccessControl()
メソッドを使用して取得する:それらの意味を読み解くとなっ
FileInfo info = new FileInfo(@"D:\test.txt");
FileSecurity fs = info.GetAccessControl();
DirectoryInfo dir = new DirectoryInfo(@"D:\test\");
DirectorySecurity ds = dir.GetAccessControl();
はまったくまったく違う話です!
それは私の疑いでした。ご協力ありがとうございました。 – user802165
どの言語?? – TheGeekYouNeed
私は.NET/C#でActive Directory APIを使用しています。 – user802165