WindowsPrincipal 類別

定義

可讓程式碼檢查 Windows 使用者的 Windows 群組成員資格。

public ref class WindowsPrincipal : System::Security::Claims::ClaimsPrincipal
public ref class WindowsPrincipal : System::Security::Principal::IPrincipal
public class WindowsPrincipal : System.Security.Claims.ClaimsPrincipal
[System.Serializable]
public class WindowsPrincipal : System.Security.Principal.IPrincipal
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class WindowsPrincipal : System.Security.Principal.IPrincipal
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class WindowsPrincipal : System.Security.Claims.ClaimsPrincipal
type WindowsPrincipal = class
    inherit ClaimsPrincipal
[<System.Serializable>]
type WindowsPrincipal = class
    interface IPrincipal
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type WindowsPrincipal = class
    interface IPrincipal
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type WindowsPrincipal = class
    inherit ClaimsPrincipal
Public Class WindowsPrincipal
Inherits ClaimsPrincipal
Public Class WindowsPrincipal
Implements IPrincipal
繼承
WindowsPrincipal
繼承
WindowsPrincipal
屬性
實作

範例

下列範例示範如何使用 IsInRole 方法多載。 列舉 WindowsBuiltInRole 是用來作為識別內建角色之相對識別碼 (RID) 的來源。 RID 可用來判斷目前主體的角色。

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 );
         }
      }
   }
using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;

class SecurityPrincipalDemo
{
    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
            {
                // Cast the role name to a RID represented by the WindowsBuildInRole value.
                Console.WriteLine("{0}? {1}.", roleName,
                    myPrincipal.IsInRole((WindowsBuiltInRole)roleName));
                Console.WriteLine("The RID for this role is: " + ((int)roleName).ToString());
            }
            catch (Exception)
            {
                Console.WriteLine("{0}: Could not obtain role for this RID.",
                    roleName);
            }
        }
        // Get the role using the string value of the role.
        Console.WriteLine("{0}? {1}.", "Administrators",
            myPrincipal.IsInRole("BUILTIN\\" + "Administrators"));
        Console.WriteLine("{0}? {1}.", "Users",
            myPrincipal.IsInRole("BUILTIN\\" + "Users"));
        // Get the role using the WindowsBuiltInRole enumeration value.
        Console.WriteLine("{0}? {1}.", WindowsBuiltInRole.Administrator,
           myPrincipal.IsInRole(WindowsBuiltInRole.Administrator));
        // Get the role using the WellKnownSidType.
        SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null);
        Console.WriteLine("WellKnownSidType BuiltinAdministratorsSid  {0}? {1}.", sid.Value, myPrincipal.IsInRole(sid));
    }

    public static void Main()
    {
        DemonstrateWindowsBuiltInRoleEnum();
    }
}
Imports System.Threading
Imports System.Security.Permissions
Imports System.Security.Principal

Class SecurityPrincipalDemo

    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
                ' Cast the role name to a RID represented by the WindowsBuildInRole value.
                Console.WriteLine("{0}? {1}.", roleName, myPrincipal.IsInRole(CType(roleName, WindowsBuiltInRole)))
                Console.WriteLine("The RID for this role is: " + Fix(roleName).ToString())

            Catch
                Console.WriteLine("{0}: Could not obtain role for this RID.", roleName)
            End Try
        Next roleName
        ' Get the role using the string value of the role.
        Console.WriteLine("{0}? {1}.", "Administrators", myPrincipal.IsInRole("BUILTIN\" + "Administrators"))
        Console.WriteLine("{0}? {1}.", "Users", myPrincipal.IsInRole("BUILTIN\" + "Users"))
        ' Get the role using the WindowsBuiltInRole enumeration value.
        Console.WriteLine("{0}? {1}.", WindowsBuiltInRole.Administrator, myPrincipal.IsInRole(WindowsBuiltInRole.Administrator))
        ' Get the role using the WellKnownSidType.
        Dim sid As New SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, Nothing)
        Console.WriteLine("WellKnownSidType BuiltinAdministratorsSid  {0}? {1}.", sid.Value, myPrincipal.IsInRole(sid))

    End Sub

    Public Shared Sub Main()
        DemonstrateWindowsBuiltInRoleEnum()

    End Sub
End Class

備註

類別 WindowsPrincipal 主要用於檢查 Windows 使用者的角色。 方法 WindowsPrincipal.IsInRole 多載可讓您使用不同的角色內容來檢查使用者角色。

建構函式

WindowsPrincipal(WindowsIdentity)

使用指定的 WindowsIdentity 物件,初始化 WindowsPrincipal 類別的新執行個體。

屬性

Claims

取得集合,其中包含來自與這個宣告主體相關聯的所有宣告身分識別之所有宣告。

(繼承來源 ClaimsPrincipal)
CustomSerializationData

包含衍生類型所提供的任何其他資料。 通常會在呼叫 WriteTo(BinaryWriter, Byte[]) 時設定。

(繼承來源 ClaimsPrincipal)
DeviceClaims

取得這個主體中的所有 Windows 裝置宣告。

Identities

取得集合,其中包含所有與這個宣告主體相關聯的宣告身分識別。

(繼承來源 ClaimsPrincipal)
Identity

取得目前主要物件的識別。

UserClaims

取得這個主體中的所有 Windows 使用者宣告。

方法

AddIdentities(IEnumerable<ClaimsIdentity>)

將指定的宣告識別加入這個宣告主體。

(繼承來源 ClaimsPrincipal)
AddIdentity(ClaimsIdentity)

將指定的宣告識別加入這個宣告主體。

(繼承來源 ClaimsPrincipal)
Clone()

傳回這個執行個體的複本。

(繼承來源 ClaimsPrincipal)
CreateClaimsIdentity(BinaryReader)

建立新的宣告身分識別。

(繼承來源 ClaimsPrincipal)
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
FindAll(Predicate<Claim>)

擷取符合指定述詞的所有宣告。

(繼承來源 ClaimsPrincipal)
FindAll(String)

擷取所有具有指定宣告類型的宣告。

(繼承來源 ClaimsPrincipal)
FindFirst(Predicate<Claim>)

擷取符合指定述詞的第一個宣告。

(繼承來源 ClaimsPrincipal)
FindFirst(String)

擷取含指定宣告型別的第一個宣告。

(繼承來源 ClaimsPrincipal)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetObjectData(SerializationInfo, StreamingContext)

將序列化目前 SerializationInfo 物件所需的資料填入 ClaimsPrincipal

(繼承來源 ClaimsPrincipal)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
HasClaim(Predicate<Claim>)

判斷與此宣告主體相關聯之宣告身分識別的任何一個是否包含指定述詞所比對的宣告。

(繼承來源 ClaimsPrincipal)
HasClaim(String, String)

判斷與此宣告主體相關聯之宣告身分識別的任何一個,是否包含具有指定宣告類型和值的宣告。

(繼承來源 ClaimsPrincipal)
IsInRole(Int32)

判斷目前的主體是否屬於具有指定相關識別元 (RID) 的 Windows 使用者群組。

IsInRole(SecurityIdentifier)

判斷目前的主體是否屬於具有指定安全性識別碼 (SID) 的 Windows 使用者群組。

IsInRole(String)

判斷目前的主體是否屬於具有指定名稱的 Windows 使用者群組。

IsInRole(WindowsBuiltInRole)

判斷目前的主體是否屬於具有指定 WindowsBuiltInRole 的 Windows 使用者群組。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
WriteTo(BinaryWriter)

使用 BinaryWriter 序列化。

(繼承來源 ClaimsPrincipal)
WriteTo(BinaryWriter, Byte[])

使用 BinaryWriter 序列化。

(繼承來源 ClaimsPrincipal)

適用於