- PR -

ActiveDirectoryのユーザーの権限の取得について

1
投稿者投稿内容
kirua
常連さん
会議室デビュー日: 2006/05/30
投稿数: 31
投稿日時: 2006-05-30 16:12
ActiveDirectoryのあるユーザーがadmin権限どうか判定するには、C#の言語ではどのようにすればよろしいですか?もしサイトでもあれば教えてください。よろしくお願いいたします。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-05-31 00:27
引用:

kiruaさんの書き込み (2006-05-30 16:12) より:
ActiveDirectoryのあるユーザーがadmin権限どうか判定するには、C#の言語ではどのようにすればよろしいですか?もしサイトでもあれば教えてください。よろしくお願いいたします。



それはどういう意味ですか?

local の Administrators group に所属しているかを調べたいなら、System.DirectoryService.DirectoryEntry あたりを使えばできそうな気がしますがね。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-05-31 00:33
まず、どこまで調べて、どこがわからないかを明確にされたほうが
みなさん的確な回答が出来ると思いますよ
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-05-31 04:24
とりあえず、前提条件が

引用:
local の Administrators group に所属しているかを調べたいなら


として、こんな感じでできるでしょう。

コード:

static bool IsLocalGroupMember(string userName, string groupName)
{
bool flag = false;
string myComputerName = System.Environment.MachineName;
string myComputerWinNtPath = "WinNT://" + myComputerName + ",computer";
using(DirectoryEntry myComputer = new DirectoryEntry(myComputerWinNtPath))
{
string userWinNtPath = "";
object[] getUserArgs = {"user", userName};
using(DirectoryEntry user
= (DirectoryEntry)myComputer.Invoke("GetObject", getUserArgs))
{
userWinNtPath = user.Path;
}

object[] getGroupArgs = {"group", groupName};
using(DirectoryEntry group
= (DirectoryEntry)myComputer.Invoke("GetObject", getGroupArgs))
{
object[] isMemberArgs = {userWinNtPath};
flag = (bool)group.Invoke("IsMember", isMemberArgs);
}
}
return flag;
}


まあ、ここら辺は、.NET の refernce だけを参照しても載っていないので、それに加え、
ここら辺 を参照しないとダメでしょうな。

[編集] 変数名とか非常に気に食わなかったので修正 [/編集]

[ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2006-05-31 04:49 ]
kirua
常連さん
会議室デビュー日: 2006/05/30
投稿数: 31
投稿日時: 2006-06-01 12:05
回答して頂きありがとうございます。
説明が足り無すぎましたね。
ちゃっぴさんが答えていただいた内容で試してみます。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)