WindowsPrincipal.IsInRole メソッド (WindowsBuiltInRole)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As WindowsPrincipal Dim role As WindowsBuiltInRole Dim returnValue As Boolean returnValue = instance.IsInRole(role)
戻り値
現在のプリンシパルが、指定した Windows ユーザー グループのメンバである場合は true。それ以外の場合は false。


新しいユーザーや新しいグループなど、新しく作成されたロール情報をテストする場合は、ドメイン内でのロール情報の反映を強制するために、ログアウトとログインを行うことが重要です。これを行わない場合、IsInRole テストを実行すると false が返されることがあります。
![]() |
---|
パフォーマンス上の理由から、ユーザーのロールを決定するのに適したオーバーロードとして、IsInRole(SecurityIdentifier) オーバーロードをお勧めします。 |
![]() |
---|
IsInRole メソッドは、Windows 98 および Windows Millennium Edition では結果を返しません。
|

Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WindowsPrincipal.IsInRole メソッド (Int32)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As WindowsPrincipal Dim rid As Integer Dim returnValue As Boolean returnValue = instance.IsInRole(rid)
戻り値
現在のプリンシパルが、指定した Windows ユーザー グループのメンバである、つまり特定のロール内にある場合は true。それ以外の場合は false。

新しいユーザーや新しいグループなど、新しく作成されたロール情報をテストする場合は、ドメイン内でのロール情報の反映を強制するために、ログアウトとログインを行うことが重要です。これを行わない場合、IsInRole テストを実行すると false が返されることがあります。
![]() |
---|
パフォーマンス上の理由から、ユーザーのロールを決定するのに適したオーバーロードとして、IsInRole(SecurityIdentifier) オーバーロードをお勧めします。 |
![]() |
---|
IsInRole メソッドは、Windows 98 および Windows Millennium Edition では結果を返しません。 |
相対識別子 (RID) は、Windows ユーザー グループのセキュリティ識別子 (SID) のコンポーネントであり、プラットフォーム間のローカリゼーション問題を回避するためにサポートされています。多数のユーザー アカウント、ローカル グループ、およびグローバル グループは、Windows のすべてのバージョンで一定である既定の RID 値を持っています。
たとえば、BUILTIN\Administrators ロールの RID は 0x220 です。0x220 を IsInRole メソッドの入力パラメータとして使用すると、現在のプリンシパルが管理者である場合に true が返されます。
0x1F4 | |
0x1F5 |
DOMAINNAME\Domain Admins | 0x200 |
0x201 | |
0x202 |

Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WindowsPrincipal.IsInRole メソッド (String)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As WindowsPrincipal Dim role As String Dim returnValue As Boolean returnValue = instance.IsInRole(role)
戻り値
現在のプリンシパルが、指定した Windows ユーザー グループのメンバである場合は true。それ以外の場合は false。

新しいユーザーや新しいグループなど、新しく作成されたロール情報をテストする場合は、ドメイン内でのロール情報の反映を強制するために、ログアウトとログインを行うことが重要です。これを行わない場合、IsInRole テストを実行すると false が返されることがあります。
![]() |
---|
パフォーマンス上の理由から、ユーザーのロールを決定するのに適したオーバーロードとして、IsInRole(SecurityIdentifier) オーバーロードをお勧めします。 |
![]() |
---|
IsInRole メソッドは、Windows 98 および Windows Millennium Edition では結果を返しません。 |
組み込みのロールの場合は、role 文字列を "BUILTIN\RoleNameHere" の形式にする必要があります。たとえば、Windows の管理者ロールのメンバシップを調べるには、ロールを表す文字列を "BUILTIN\Administrators" にする必要があります。円記号は、必要に応じてエスケープします。
コンピュータ固有のロールの場合は、role 文字列を "MACHINENAME\RoleNameHere" の形式にする必要があります。
![]() |
---|
コンピュータ名ではなくドメイン名によるロールの修飾は無効です。ロールは、現在のプリンシパルのドメインに対してのみ決定できます。 |

組み込みのロールを表す文字列を使用して、IsInRole を呼び出す方法を次の例に示します。
Public Shared Sub DemonstrateWindowsBuiltInRoleEnum() Dim myDomain As AppDomain = Thread.GetDomain() myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal) Dim myPrincipal As WindowsPrincipal = CType(Thread.CurrentPrincipal, WindowsPrincipal) Console.WriteLine("{0} belongs to: ", myPrincipal.Identity.Name.ToString()) Dim wbirFields As Array = [Enum].GetValues(GetType(WindowsBuiltInRole)) Dim roleName As Object For Each roleName In wbirFields Try Console.WriteLine("{0}? {1}.", roleName, _ myPrincipal.IsInRole(CType(roleName, WindowsBuiltInRole))) Catch Console.WriteLine("{0}: Could not obtain the role for this RID.", roleName) End Try Next roleName End Sub 'DemonstrateWindowsBuiltInRoleEnum
public static void DemonstrateWindowsBuiltInRoleEnum() { AppDomain myDomain = Thread.GetDomain(); myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); WindowsPrincipal myPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal; Console.WriteLine("{0} belongs to: ", myPrincipal.Identity.Name.ToString()); Array wbirFields = Enum.GetValues(typeof(WindowsBuiltInRole)); foreach (object roleName in wbirFields) { try { Console.WriteLine("{0}? {1}.", roleName, myPrincipal.IsInRole((WindowsBuiltInRole)roleName)); } catch (Exception) { Console.WriteLine("{0}: Could not obtain role for this RID.", roleName); } } }
public: static void DemonstrateWindowsBuiltInRoleEnum() { AppDomain^ myDomain = Thread::GetDomain(); myDomain->SetPrincipalPolicy( PrincipalPolicy::WindowsPrincipal ); WindowsPrincipal^ myPrincipal = dynamic_cast<WindowsPrincipal^>(Thread::CurrentPrincipal); Console::WriteLine( "{0} belongs to: ", myPrincipal->Identity->Name ); Array^ wbirFields = Enum::GetValues( WindowsBuiltInRole::typeid ); for each ( Object^ roleName in wbirFields ) { try { Console::WriteLine( "{0}? {1}.", roleName, myPrincipal->IsInRole( *dynamic_cast<WindowsBuiltInRole^>(roleName) ) ); } catch ( Exception^ ) { Console::WriteLine( "{0}: Could not obtain role for this RID.", roleName ); } } }
public static void DemonstrateWindowsBuiltInRoleEnum() { AppDomain myDomain = Thread.GetDomain(); myDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); WindowsPrincipal myPrincipal = ((WindowsPrincipal) (Thread.get_CurrentPrincipal())); Console.WriteLine("{0} belongs to: ", myPrincipal.get_Identity().get_Name().ToString()); Array wbirFields = Enum.GetValues(WindowsBuiltInRole.class.ToType()); for (int iCtr = 0; iCtr < wbirFields.get_Count(); iCtr++) { Object roleName = wbirFields.get_Item(iCtr); try { Console.WriteLine("{0}? {1}.", roleName, System.Convert.ToString(myPrincipal. IsInRole(((WindowsBuiltInRole)(roleName))))); } catch (System.Exception exp) { Console.WriteLine( "{0}: Could not obtain role for this RID.", roleName); } } } //DemonstrateWindowsBuiltInRoleEnum

Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


WindowsPrincipal.IsInRole メソッド

名前 | 説明 |
---|---|
WindowsPrincipal.IsInRole (Int32) | 現在のプリンシパルが、指定した相対識別子 (RID) の Windows ユーザー グループに属しているかどうかを確認します。 |
WindowsPrincipal.IsInRole (SecurityIdentifier) | 現在のプリンシパルが、指定したセキュリティ識別子 (SID) で Windows ユーザー グループに属しているかどうかを確認します。 |
WindowsPrincipal.IsInRole (String) | 現在のプリンシパルが、指定した名前の Windows ユーザー グループに属しているかどうかを確認します。 |
WindowsPrincipal.IsInRole (WindowsBuiltInRole) | 現在のプリンシパルが、指定した WindowsBuiltInRole の Windows ユーザー グループに属しているかどうかを確認します。 |

WindowsPrincipal.IsInRole メソッド (SecurityIdentifier)
アセンブリ: mscorlib (mscorlib.dll 内)

<ComVisibleAttribute(False)> _ Public Overridable Function IsInRole ( _ sid As SecurityIdentifier _ ) As Boolean
Dim instance As WindowsPrincipal Dim sid As SecurityIdentifier Dim returnValue As Boolean returnValue = instance.IsInRole(sid)
戻り値
現在のプリンシパルが、指定した Windows ユーザー グループのメンバである場合は true。それ以外の場合は false。


SecurityIdentifier は、Windows 2000、Windows Server、および Windows XP 実装でユーザーまたはグループを一意に識別します。
![]() |
---|
IsInRole メソッドは、Windows 98 および Windows Millennium Edition では結果を返しません。 |
新しいユーザーや新しいグループなど、新しく作成されたロール情報をテストする場合は、ドメイン内でのロール情報の反映を強制するために、ログアウトとログインを行うことが重要です。これを行わない場合、IsInRole テストを実行すると false が返されることがあります。

Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- WindowsPrincipal.IsInRoleのページへのリンク