Administrator権限の有無を調べる方法
- 題名: Administrator権限の有無を調べる方法
- 著者: ぱんだこぱんだ
- 日時: 2010/11/12 14:45:53
- ID: 27554
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: Administrator権限の有無を調べる方法
- 著者: オショウ
- 日時: 2010/11/12 14:55:18
- ID: 27555
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: Administrator権限の有無を調べる方法
- 著者: ぱんだこぱんだ
- 日時: 2010/11/13 21:54:12
- ID: 27557
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: Administrator権限の有無を調べる方法
- 著者: オショウ
- 日時: 2010/11/14 1:14:00
- ID: 27558
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: Administrator権限の有無を調べる方法
- 著者: ぱんだこぱんだ
- 日時: 2010/11/14 15:00:43
- ID: 27559
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: Administrator権限の有無を調べる方法
- 著者: オショウ
- 日時: 2010/11/14 18:53:52
- ID: 27563
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: Administrator権限の有無を調べる方法
- 著者: ぱんだこぱんだ
- 日時: 2010/11/15 23:12:02
- ID: 27573
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
Windows 7等で以下のプログラムを実行した時にアドミニ権限を調べたのですが、
実際のユーザ アカウントでの設定値と異なる結果を返します。
using System;
using System.Security.Principal;
public static bool IsAdmin()
{
WindowsIdentity ident = WindowsIdentity.GetCurrent();
WindowsPrincipal princ = new WindowsPrincipal(ident);
bool result = princ.IsInRole(WindowsBuiltInRole.Administrator);
return result;
}
IsInRoleを調べた結果、以下のことが分かりました。
*********************************************************************
Windows Vista では、ユーザー アカウント制御 (UAC: User Account Control) でユーザーの権限が決定されます。
ユーザーが組み込みの Administrators グループのメンバである場合、そのユーザーには
標準ユーザー アクセス トークンおよび管理者アクセス トークンという 2 つのランタイム アクセス トークンが割り当てられています。
既定では、ユーザーは標準ユーザー ロールに所属します。
管理者特権が必要なタスクを実行しようとする場合は、[同意] ダイアログ ボックスを使用して動的にロールを昇格できます。
IsInRole メソッドを実行するコードでは、[同意] ダイアログ ボックスは表示されません。
ユーザーが標準ユーザー ロールに所属する場合は、そのユーザーが組み込みの Administrators グループのメンバであっても、
このコードは false を返します。
ユーザーの権限は、コードの実行前にアプリケーション アイコンを右クリックし、
管理者として実行するタスクを示すことで昇格できます。
*********************************************************************
何か他にアドミニ権限の有無を調べられる方法があれば
教えて下さい。よろしくお願いします。