WindowsPrincipal.IsInRole メソッド
現在のプリンシパルが、指定した Windows ユーザー グループに属しているかどうかを確認します。
オーバーロードの一覧
現在のプリンシパルが、指定したロール ID (RID) の Windows ユーザー グループに属しているかどうかを確認します。
[Visual Basic] Overloads Public Overridable Function IsInRole(Integer) As Boolean
[JScript] public function IsInRole(int) : Boolean;
現在のプリンシパルが、指定した名前の Windows ユーザー グループに属しているかどうかを確認します。
[Visual Basic] Overloads Public Overridable Function IsInRole(String) As Boolean Implements IPrincipal.IsInRole
現在のプリンシパルが、指定した WindowsBuiltInRole の Windows ユーザー グループに属しているかどうかを確認します。
[Visual Basic] Overloads Public Overridable Function IsInRole(WindowsBuiltInRole) As Boolean
[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 名前空間