WindowsPrincipal.IsInRoleとは? わかりやすく解説

WindowsPrincipal.IsInRole メソッド (WindowsBuiltInRole)

現在のプリンシパルが、指定した WindowsBuiltInRole の Windows ユーザー グループに属しているかどうかを確認します。

名前空間: System.Security.Principal
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Overridable Function
 IsInRole ( _
    role As WindowsBuiltInRole _
) As Boolean
Dim instance As WindowsPrincipal
Dim role As WindowsBuiltInRole
Dim returnValue As Boolean

returnValue = instance.IsInRole(role)
public virtual bool IsInRole (
    WindowsBuiltInRole role
)
public:
virtual bool IsInRole (
    WindowsBuiltInRole role
)
public boolean IsInRole (
    WindowsBuiltInRole role
)
public function IsInRole (
    role : WindowsBuiltInRole
) : boolean

パラメータ

role

WindowsBuiltInRole 値の 1 つ。

戻り値
現在のプリンシパルが、指定した Windows ユーザー グループのメンバである場合は true。それ以外の場合は false。

例外例外
例外の種類条件

ArgumentException

role が有効な WindowsBuiltInRole 値ではありません。

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
WindowsPrincipal クラス
WindowsPrincipal メンバ
System.Security.Principal 名前空間

WindowsPrincipal.IsInRole メソッド (Int32)

現在のプリンシパルが、指定した相対識別子 (RID) の Windows ユーザー グループに属しているかどうかを確認します。

名前空間: System.Security.Principal
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

解説解説

新しいユーザーや新しいグループなど、新しく作成されたロール情報をテストする場合は、ドメイン内でのロール情報の反映を強制するために、ログアウトとログインを行うことが重要です。これを行わない場合、IsInRole テストを実行すると false が返されることがあります。

メモメモ

パフォーマンス上の理由から、ユーザーのロールを決定するのに適したオーバーロードとして、IsInRole(SecurityIdentifier) オーバーロードをお勧めします。

メモ重要 :

IsInRole メソッドは、Windows 98 および Windows Millennium Edition では結果を返しません。

相対識別子 (RID) は、Windows ユーザー グループのセキュリティ識別子 (SID) のコンポーネントであり、プラットフォーム間のローカリゼーション問題を回避するためにサポートされています。多数のユーザー アカウント、ローカル グループ、およびグローバル グループは、Windows のすべてのバージョンで一定である既定の RID 値を持っています。

たとえば、BUILTIN\Administrators ロールの RID は 0x220 です。0x220 を IsInRole メソッドの入力パラメータとして使用すると、現在のプリンシパルが管理者である場合に true が返されます。

次の表に、既定の RID 値を示します。

組み込みローカル グループ

RID

BUILTIN\Administrators

0x220

BUILTIN\Users

0x221

BUILTIN\Guests

0x222

BUILTIN\Account Operators

0x224

BUILTIN\Server Operators

0x225

BUILTIN\Print Operators

0x226

BUILTIN\Backup Operators

0x227

BUILTIN\Replicator

0x228

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
WindowsPrincipal クラス
WindowsPrincipal メンバ
System.Security.Principal 名前空間

WindowsPrincipal.IsInRole メソッド (String)

現在のプリンシパルが、指定した名前の Windows ユーザー グループに属しているかどうかを確認します。

名前空間: System.Security.Principal
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

解説解説

新しいユーザーや新しいグループなど、新しく作成されたロール情報をテストする場合は、ドメイン内でのロール情報の反映を強制するために、ログアウトとログインを行うことが重要です。これを行わない場合、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
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
WindowsPrincipal クラス
WindowsPrincipal メンバ
System.Security.Principal 名前空間

WindowsPrincipal.IsInRole メソッド


WindowsPrincipal.IsInRole メソッド (SecurityIdentifier)

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

現在のプリンシパルが、指定したセキュリティ識別子 (SID) で Windows ユーザー グループに属しているかどうかを確認します。

名前空間: System.Security.Principal
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

例外例外
例外の種類条件

ArgumentNullException

sid が null 参照 (Visual Basic では Nothing) です。

SecurityException

Windows は Win32 エラーを返します。

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
WindowsPrincipal クラス
WindowsPrincipal メンバ
System.Security.Principal 名前空間



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「WindowsPrincipal.IsInRole」の関連用語

WindowsPrincipal.IsInRoleのお隣キーワード

   

英語⇒日本語
日本語⇒英語
   



WindowsPrincipal.IsInRoleのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS