次の方法で共有


WindowsPrincipal.IsInRole メソッド

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

オーバーロードの一覧

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

[Visual Basic] Overloads Public Overridable Function IsInRole(Integer) As Boolean

[C#] public virtual bool IsInRole(int);

[C++] public: virtual bool IsInRole(int);

[JScript] public function IsInRole(int) : Boolean;

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

[Visual Basic] Overloads Public Overridable Function IsInRole(String) As Boolean Implements IPrincipal.IsInRole

[C#] public virtual bool IsInRole(string);

[C++] public: virtual bool IsInRole(String*);

[JScript] public function IsInRole(String) : Boolean;

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

[Visual Basic] Overloads Public Overridable Function IsInRole(WindowsBuiltInRole) As Boolean

[C#] public virtual bool IsInRole(WindowsBuiltInRole);

[C++] public: virtual bool IsInRole(WindowsBuiltInRole);

[JScript] public function IsInRole(WindowsBuiltInRole) : Boolean;

使用例

[Visual Basic, C#, C++] 組み込みのロールを表す文字列を使用して、 IsInRole を呼び出す方法を次の例に示します。

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

[Visual Basic, C#, C++] メモ   ここでは、IsInRole のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。

 

   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
   

[C#] 

   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);
       }
        }        

   }


[C++] 
public:
   static void DemonstrateWindowsBuiltInRoleEnum() {
      AppDomain*  myDomain = Thread::GetDomain();

      myDomain->SetPrincipalPolicy(PrincipalPolicy::WindowsPrincipal);
      WindowsPrincipal*  myPrincipal = dynamic_cast<WindowsPrincipal*>(Thread::CurrentPrincipal);

      Console::WriteLine(S"{0} belongs to: ", myPrincipal->Identity->Name);

      Array*  wbirFields = Enum::GetValues(__typeof(WindowsBuiltInRole));

      System::Collections::IEnumerator* myEnum = wbirFields->GetEnumerator();
      while (myEnum->MoveNext()) {
         Object* roleName = __try_cast<Object*>(myEnum->Current);
         try {
            Console::WriteLine(S"{0}? {1}.", roleName,
               __box(myPrincipal->IsInRole(dynamic_cast<String __gc *>(roleName))));
         } catch (Exception*) {
            Console::WriteLine(S"{0}: Could not obtain role for this RID.",
               roleName);
         }
      }
   }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

参照

WindowsPrincipal クラス | WindowsPrincipal メンバ | System.Security.Principal 名前空間