WindowsIdentity 类

定义

表示 Windows 用户。Represents a Windows user.

public ref class WindowsIdentity : System::Security::Claims::ClaimsIdentity, IDisposable, System::Runtime::Serialization::IDeserializationCallback, System::Runtime::Serialization::ISerializable
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class WindowsIdentity : System.Security.Claims.ClaimsIdentity, IDisposable, System.Runtime.Serialization.IDeserializationCallback, System.Runtime.Serialization.ISerializable
type WindowsIdentity = class
    inherit ClaimsIdentity
    interface IIdentity
    interface IDeserializationCallback
    interface ISerializable
    interface IDisposable
Public Class WindowsIdentity
Inherits ClaimsIdentity
Implements IDeserializationCallback, IDisposable, ISerializable
继承
WindowsIdentity
属性
实现

示例

下面的示例演示如何使用 WindowsIdentity 类的成员。The following example shows the use of members of WindowsIdentity class. 有关演示如何通过调用非托管 Win32 LogonUser 函数获取 Windows 帐户令牌并使用该令牌来模拟其他用户的示例,请参阅 WindowsImpersonationContext 类。For an example showing how to obtain a Windows account token through a call to the unmanaged Win32 LogonUser function, and use that token to impersonate another user, see the WindowsImpersonationContext class.

using namespace System;
using namespace System::Security::Principal;
void IntPtrConstructor( IntPtr logonToken );
void IntPtrStringConstructor( IntPtr logonToken );
void IntPrtStringTypeBoolConstructor( IntPtr logonToken );
void IntPtrStringTypeConstructor( IntPtr logonToken );
void UseProperties( IntPtr logonToken );
IntPtr LogonUser();
void GetAnonymousUser();
void ImpersonateIdentity( IntPtr logonToken );

[STAThread]
int main()
{
   
   // Retrieve the Windows account token for the current user.
   IntPtr logonToken = LogonUser();
   
   // Constructor implementations.
   IntPtrConstructor( logonToken );
   IntPtrStringConstructor( logonToken );
   IntPtrStringTypeConstructor( logonToken );
   IntPrtStringTypeBoolConstructor( logonToken );
   
   // Property implementations.
   UseProperties( logonToken );
   
   // Method implementations.
   GetAnonymousUser();
   ImpersonateIdentity( logonToken );
   Console::WriteLine( "This sample completed successfully; "
   "press Enter to exit." );
   Console::ReadLine();
}


// Create a WindowsIdentity object for the user represented by the
// specified Windows account token.
void IntPtrConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token.
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}

// Create a WindowsIdentity object for the user represented by the
// specified account token and authentication type.
void IntPtrStringConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token 
   // and the specified authentication type.
   String^ authenticationType = "WindowsAuthentication";
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}



// Create a WindowsIdentity object for the user represented by the
// specified account token, authentication type and Windows account
// type.
void IntPtrStringTypeConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token,
   // and the specified authentication type and Windows account type.
   String^ authenticationType = "WindowsAuthentication";
   WindowsAccountType guestAccount = WindowsAccountType::Guest;
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType,guestAccount );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}

// Create a WindowsIdentity object for the user represented by the
// specified account token, authentication type, Windows account type and
// Boolean authentication flag.
void IntPrtStringTypeBoolConstructor( IntPtr logonToken )
{
   
   // Construct a WindowsIdentity object using the input account token,
   // and the specified authentication type, Windows account type, and
   // authentication flag.
   String^ authenticationType = "WindowsAuthentication";
   WindowsAccountType guestAccount = WindowsAccountType::Guest;
   bool isAuthenticated = true;
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken,authenticationType,guestAccount,isAuthenticated );
   
   Console::WriteLine( "Created a Windows identity object named {0}.", windowsIdentity->Name );
}

// Access the properties of a WindowsIdentity object.
void UseProperties( IntPtr logonToken )
{
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken );
   String^ propertyDescription = "The windows identity named ";
   
   // Retrieve the Windows logon name from the Windows identity object.
   propertyDescription = String::Concat( propertyDescription, windowsIdentity->Name );
   
   // Verify that the user account is not considered to be an Anonymous
   // account by the system.
   if (  !windowsIdentity->IsAnonymous )
   {
      propertyDescription = String::Concat( propertyDescription, ", is not an Anonymous account" );
   }

   
   // Verify that the user account has been authenticated by Windows.
   if ( windowsIdentity->IsAuthenticated )
   {
      propertyDescription = String::Concat( propertyDescription, ", is authenticated" );
   }
   
   // Verify that the user account is considered to be a System account
   // by the system.
   if ( windowsIdentity->IsSystem )
   {
      propertyDescription = String::Concat( propertyDescription, ", is a System account" );
   }
   
   // Verify that the user account is considered to be a Guest account
   // by the system.
   if ( windowsIdentity->IsGuest )
   {
      propertyDescription = String::Concat( propertyDescription, ", is a Guest account" );
   }
   
   // Retrieve the authentication type for the 
   String^ authenticationType = windowsIdentity->AuthenticationType;
   
   // Append the authenication type to the output message.
   if ( authenticationType != nullptr )
   {
      propertyDescription = String::Format( "{0} and uses {1} authentication type.", propertyDescription, authenticationType );
   }
   
   Console::WriteLine( propertyDescription );
}


// Retrieve the account token from the current WindowsIdentity object
// instead of calling the unmanaged LogonUser method in the advapi32.dll.
IntPtr LogonUser()
{
   
   IntPtr accountToken = WindowsIdentity::GetCurrent()->Token;
   
   return accountToken;
}


// Get the WindowsIdentity object for an Anonymous user.
void GetAnonymousUser()
{
   
   // Retrieve a WindowsIdentity object that represents an anonymous
   // Windows user.
   WindowsIdentity^ windowsIdentity = WindowsIdentity::GetAnonymous();
   
}


// Impersonate a Windows identity.
void ImpersonateIdentity( IntPtr logonToken )
{
   
   // Retrieve the Windows identity using the specified token.
   WindowsIdentity^ windowsIdentity = gcnew WindowsIdentity( logonToken );
   
   // Create a WindowsImpersonationContext object by impersonating the
   // Windows identity.
   WindowsImpersonationContext^ impersonationContext = windowsIdentity->Impersonate();
   Console::WriteLine( "Name of the identity after impersonation: {0}.", WindowsIdentity::GetCurrent()->Name );
   
   // Stop impersonating the user.
   impersonationContext->Undo();
   
   // Check the identity name.
   Console::Write( "Name of the identity after performing an Undo on the" );
   Console::WriteLine( " impersonation: {0}", WindowsIdentity::GetCurrent()->Name );
}

using System;
using System.Security.Principal;

class WindowsIdentityMembers
{
    [STAThread]
    static void Main(string[] args)
    {
        // Retrieve the Windows account token for the current user.
        IntPtr logonToken = LogonUser();

        // Constructor implementations.
        IntPtrConstructor(logonToken);
        IntPtrStringConstructor(logonToken);
        IntPtrStringTypeConstructor(logonToken);
        IntPrtStringTypeBoolConstructor(logonToken);

        // Property implementations.
        UseProperties(logonToken);

        // Method implementations.
        GetAnonymousUser();
        ImpersonateIdentity(logonToken);

        Console.WriteLine("This sample completed successfully; " +
            "press Enter to exit.");
        Console.ReadLine();
    }

    // Create a WindowsIdentity object for the user represented by the
    // specified Windows account token.
    private static void IntPtrConstructor(IntPtr logonToken)
    {
        // Construct a WindowsIdentity object using the input account token.
        WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken);

        Console.WriteLine("Created a Windows identity object named " +
            windowsIdentity.Name + ".");
    }

    // Create a WindowsIdentity object for the user represented by the
    // specified account token and authentication type.
    private static void IntPtrStringConstructor(IntPtr logonToken)
    {
        // Construct a WindowsIdentity object using the input account token 
        // and the specified authentication type.
        string authenticationType = "WindowsAuthentication";
        WindowsIdentity windowsIdentity =
                        new WindowsIdentity(logonToken, authenticationType);

        Console.WriteLine("Created a Windows identity object named " +
            windowsIdentity.Name + ".");
    }

    // Create a WindowsIdentity object for the user represented by the
    // specified account token, authentication type, and Windows account
    // type.
    private static void IntPtrStringTypeConstructor(IntPtr logonToken)
    {
        // Construct a WindowsIdentity object using the input account token,
        // and the specified authentication type, and Windows account type.
        string authenticationType = "WindowsAuthentication";
        WindowsAccountType guestAccount = WindowsAccountType.Guest;
        WindowsIdentity windowsIdentity =
            new WindowsIdentity(logonToken, authenticationType, guestAccount);

        Console.WriteLine("Created a Windows identity object named " +
            windowsIdentity.Name + ".");
    }

    // Create a WindowsIdentity object for the user represented by the
    // specified account token, authentication type, Windows account type, and
    // Boolean authentication flag.
    private static void IntPrtStringTypeBoolConstructor(IntPtr logonToken)
    {
        // Construct a WindowsIdentity object using the input account token,
        // and the specified authentication type, Windows account type, and
        // authentication flag.
        string authenticationType = "WindowsAuthentication";
        WindowsAccountType guestAccount = WindowsAccountType.Guest;
        bool isAuthenticated = true;
        WindowsIdentity windowsIdentity = new WindowsIdentity(
            logonToken, authenticationType, guestAccount, isAuthenticated);

        Console.WriteLine("Created a Windows identity object named " +
            windowsIdentity.Name + ".");
    }
    // Access the properties of a WindowsIdentity object.
    private static void UseProperties(IntPtr logonToken)
    {
        WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken);
        string propertyDescription = "The Windows identity named ";

        // Retrieve the Windows logon name from the Windows identity object.
        propertyDescription += windowsIdentity.Name;

        // Verify that the user account is not considered to be an Anonymous
        // account by the system.
        if (!windowsIdentity.IsAnonymous)
        {
            propertyDescription += " is not an Anonymous account";
        }

        // Verify that the user account has been authenticated by Windows.
        if (windowsIdentity.IsAuthenticated)
        {
            propertyDescription += ", is authenticated";
        }

        // Verify that the user account is considered to be a System account
        // by the system.
        if (windowsIdentity.IsSystem)
        {
            propertyDescription += ", is a System account";
        }
        // Verify that the user account is considered to be a Guest account
        // by the system.
        if (windowsIdentity.IsGuest)
        {
            propertyDescription += ", is a Guest account";
        }

        // Retrieve the authentication type for the 
        String authenticationType = windowsIdentity.AuthenticationType;

        // Append the authenication type to the output message.
        if (authenticationType != null)
        {
            propertyDescription += (" and uses " + authenticationType);
            propertyDescription += (" authentication type.");
        }

        Console.WriteLine(propertyDescription);

        // Display the SID for the owner.
        Console.Write("The SID for the owner is : ");
        SecurityIdentifier si = windowsIdentity.Owner;
        Console.WriteLine(si.ToString());
        // Display the SIDs for the groups the current user belongs to.
        Console.WriteLine("Display the SIDs for the groups the current user belongs to.");
        IdentityReferenceCollection irc = windowsIdentity.Groups;
        foreach (IdentityReference ir in irc)
            Console.WriteLine(ir.Value);
        TokenImpersonationLevel token = windowsIdentity.ImpersonationLevel;
        Console.WriteLine("The impersonation level for the current user is : " + token.ToString());
    }

    // Retrieve the account token from the current WindowsIdentity object
    // instead of calling the unmanaged LogonUser method in the advapi32.dll.
    private static IntPtr LogonUser()
    {
        IntPtr accountToken = WindowsIdentity.GetCurrent().Token;
        Console.WriteLine( "Token number is: " + accountToken.ToString());

        return accountToken;
    }

    // Get the WindowsIdentity object for an Anonymous user.
    private static void GetAnonymousUser()
    {
        // Retrieve a WindowsIdentity object that represents an anonymous
        // Windows user.
        WindowsIdentity windowsIdentity = WindowsIdentity.GetAnonymous();
    }

    // Impersonate a Windows identity.
    private static void ImpersonateIdentity(IntPtr logonToken)
    {
        // Retrieve the Windows identity using the specified token.
        WindowsIdentity windowsIdentity = new WindowsIdentity(logonToken);

        // Create a WindowsImpersonationContext object by impersonating the
        // Windows identity.
        WindowsImpersonationContext impersonationContext =
            windowsIdentity.Impersonate();

        Console.WriteLine("Name of the identity after impersonation: "
            + WindowsIdentity.GetCurrent().Name + ".");
        Console.WriteLine(windowsIdentity.ImpersonationLevel);
        // Stop impersonating the user.
        impersonationContext.Undo();

        // Check the identity name.
        Console.Write("Name of the identity after performing an Undo on the");
        Console.WriteLine(" impersonation: " +
            WindowsIdentity.GetCurrent().Name);
    }
}

Imports System.Security.Principal

Module Module1

    Sub Main()

        ' Retrieve the Windows account token for the current user.
        Dim logonToken As IntPtr = LogonUser()

        ' Constructor implementations.
        IntPtrConstructor(logonToken)
        IntPtrStringConstructor(logonToken)
        IntPtrStringTypeConstructor(logonToken)
        IntPrtStringTypeBoolConstructor(logonToken)

        ' Property implementations.
        UseProperties(logonToken)

        ' Method implementations.
        GetAnonymousUser()
        ImpersonateIdentity(logonToken)

        ' Align interface and conclude application.
        Console.WriteLine(vbCrLf + "This sample completed " + _
            "successfully; press Enter to exit.")
        Console.ReadLine()

    End Sub
    
    ' Create a WindowsIdentity object for the user represented by the
    ' specified Windows account token.
    Private Sub IntPtrConstructor(ByVal logonToken As IntPtr)
        ' Construct a WindowsIdentity object using the input account token.
        Dim windowsIdentity As New WindowsIdentity(logonToken)

        WriteLine("Created a Windows identity object named " + _
            windowsIdentity.Name + ".")
    End Sub
    ' Create a WindowsIdentity object for the user represented by the
    ' specified account token and authentication type.
    Private Sub IntPtrStringConstructor(ByVal logonToken As IntPtr)
        ' Construct a WindowsIdentity object using the input account token 
        ' and the specified authentication type
        Dim authenticationType = "WindowsAuthentication"
        Dim windowsIdentity As _
            New WindowsIdentity(logonToken, authenticationType)

        WriteLine("Created a Windows identity object named " + _
            windowsIdentity.Name + ".")
    End Sub

    ' Create a WindowsIdentity object for the user represented by the
    ' specified account token, authentication type, and Windows account
    ' type.
    Private Sub IntPtrStringTypeConstructor(ByVal logonToken As IntPtr)
        ' Construct a WindowsIdentity object using the input account token,
        ' and the specified authentication type and Windows account type.
        Dim authenticationType As String = "WindowsAuthentication"
        Dim guestAccount As WindowsAccountType = WindowsAccountType.Guest
        Dim windowsIdentity As _
            New WindowsIdentity(logonToken, authenticationType, guestAccount)

        WriteLine("Created a Windows identity object named " + _
            windowsIdentity.Name + ".")
    End Sub

    ' Create a WindowsIdentity object for the user represented by the
    ' specified account token, authentication type, Windows account type,
    ' and Boolean authentication flag.
    Private Sub IntPrtStringTypeBoolConstructor(ByVal logonToken As IntPtr)
        ' Construct a WindowsIdentity object using the input account token,
        ' and the specified authentication type, Windows account type, and
        ' authentication flag.
        Dim authenticationType As String = "WindowsAuthentication"
        Dim guestAccount As WindowsAccountType = WindowsAccountType.Guest
        Dim isAuthenticated As Boolean = True
        Dim windowsIdentity As New WindowsIdentity( _
            logonToken, authenticationType, guestAccount, isAuthenticated)

        WriteLine("Created a Windows identity object named " + _
            windowsIdentity.Name + ".")
    End Sub
        
    ' Access the properties of a WindowsIdentity object.
    Private Sub UseProperties(ByVal logonToken As IntPtr)
        Dim windowsIdentity As New WindowsIdentity(logonToken)
        Dim propertyDescription As String = "The Windows identity named "

        ' Retrieve the Windows logon name from the Windows identity object.
        propertyDescription += windowsIdentity.Name

        ' Verify that the user account is not considered to be an Anonymous
        ' account by the system.
        If Not windowsIdentity.IsAnonymous Then
            propertyDescription += " is not an Anonymous account"
        End If

        ' Verify that the user account has been authenticated by Windows.
        If (windowsIdentity.IsAuthenticated) Then
            propertyDescription += ", is authenticated"
        End If

        ' Verify that the user account is considered to be a System account by
        ' the system.
        If (windowsIdentity.IsSystem) Then
            propertyDescription += ", is a System account"
        End If

        ' Verify that the user account is considered to be a Guest account by
        ' the system.
        If (windowsIdentity.IsGuest) Then
            propertyDescription += ", is a Guest account"
        End If
        Dim authenticationType As String = windowsIdentity.AuthenticationType

        ' Append the authenication type to the output message.
        If (Not authenticationType Is Nothing) Then
            propertyDescription += (" and uses " + authenticationType)
            propertyDescription += (" authentication type.")
        End If

        WriteLine(propertyDescription)

        ' Display the SID for the owner.
        Console.Write("The SID for the owner is : ")
        Dim si As SecurityIdentifier
        si = windowsIdentity.Owner
        Console.WriteLine(si.ToString())
        ' Display the SIDs for the groups the current user belongs to.
        Console.WriteLine("Display the SIDs for the groups the current user belongs to.")
        Dim irc As IdentityReferenceCollection
        Dim ir As IdentityReference
        irc = windowsIdentity.Groups
        For Each ir In irc
            Console.WriteLine(ir.Value)
        Next
        Dim token As TokenImpersonationLevel
        token = windowsIdentity.ImpersonationLevel
        Console.WriteLine("The impersonation level for the current user is : " + token.ToString())
    End Sub
    ' Retrieve the account token from the current WindowsIdentity object
    ' instead of calling the unmanaged LogonUser method in the advapi32.dll.
    Private Function LogonUser() As IntPtr
        Dim accountToken As IntPtr = WindowsIdentity.GetCurrent().Token

        Return accountToken
    End Function

    ' Get the WindowsIdentity object for an Anonymous user.
    Private Sub GetAnonymousUser()
        ' Retrieve a WindowsIdentity object that represents an anonymous
        ' Windows user.
        Dim windowsIdentity As WindowsIdentity
        windowsIdentity = windowsIdentity.GetAnonymous()
    End Sub

    ' Impersonate a Windows identity.
    Private Sub ImpersonateIdentity(ByVal logonToken As IntPtr)
        ' Retrieve the Windows identity using the specified token.
        Dim windowsIdentity As New WindowsIdentity(logonToken)

        ' Create a WindowsImpersonationContext object by impersonating the
        ' Windows identity.
        Dim impersonationContext As WindowsImpersonationContext
        impersonationContext = windowsIdentity.Impersonate()

        WriteLine("Name of the identity after impersonation: " + _
            windowsIdentity.GetCurrent().Name + ".")

        ' Stop impersonating the user.
        impersonationContext.Undo()

        ' Check the identity.
        WriteLine("Name of the identity after performing an Undo on the " + _
            "impersonation: " + windowsIdentity.GetCurrent().Name + ".")
    End Sub
    ' Write out message with carriage return to output textbox.
    Private Sub WriteLine(ByVal message As String)
        Console.WriteLine(message + vbCrLf)
    End Sub

End Module

注解

调用 GetCurrent 方法以创建表示当前用户的 WindowsIdentity 对象。Call the GetCurrent method to create a WindowsIdentity object that represents the current user.

重要

此类型实现 IDisposable 接口。This type implements the IDisposable interface. 在使用完类型后,您应直接或间接释放类型。When you have finished using the type, you should dispose of it either directly or indirectly. 若要直接释放类型,请在 try/catch 块中调用其 Dispose 方法。To dispose of the type directly, call its Dispose method in a try/catch block. 若要间接释放类型,请使用 using(在 C# 中)或 Using(在 Visual Basic 中)等语言构造。To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). 有关详细信息,请参阅 IDisposable 接口主题中的“使用实现 IDisposable 的对象”一节。For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

构造函数

WindowsIdentity(IntPtr)

为指定的 Windows 帐户标记表示的用户初始化 WindowsIdentity 类的新实例。Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token.

WindowsIdentity(IntPtr, String)

为指定的 Windows 帐户标记和指定的身份验证类型表示的用户初始化 WindowsIdentity 类的新实例。Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token and the specified authentication type.

WindowsIdentity(IntPtr, String, WindowsAccountType)

为指定的 Windows 帐户标记、指定的身份验证类型和指定的 Windows 帐户类型表示的用户初始化 WindowsIdentity 类的新实例。Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token, the specified authentication type, and the specified Windows account type.

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

为指定的 Windows 帐户标记、指定的身份验证类型、指定的 Windows 帐户类型和指定的身份验证状态表示的用户初始化 WindowsIdentity 类的新实例。Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token, the specified authentication type, the specified Windows account type, and the specified authentication status.

WindowsIdentity(SerializationInfo, StreamingContext)

初始化 SerializationInfo 流中的信息所表示的用户的 WindowsIdentity 类的新实例。Initializes a new instance of the WindowsIdentity class for the user represented by information in a SerializationInfo stream.

WindowsIdentity(String)

初始化以指定用户主名称 (UPN) 表示的用户的 WindowsIdentity 类的新实例。Initializes a new instance of the WindowsIdentity class for the user represented by the specified User Principal Name (UPN).

WindowsIdentity(String, String)

初始化以指定用户主名称 (UPN) 和指定身份验证类型共同表示的用户的 WindowsIdentity 类的新实例。Initializes a new instance of the WindowsIdentity class for the user represented by the specified User Principal Name (UPN) and the specified authentication type.

WindowsIdentity(WindowsIdentity)

使用指定的 WindowsIdentity 对象初始化 WindowsIdentity 类的新实例。Initializes a new instance of the WindowsIdentity class by using the specified WindowsIdentity object.

字段

DefaultIssuer

标识默认 ClaimsIdentity 颁发者的名称。Identifies the name of the default ClaimsIdentity issuer.

DefaultNameClaimType

默认名称声明类型;NameThe default name claim type; Name.

(继承自 ClaimsIdentity)
DefaultRoleClaimType

默认角色声明类型;RoleThe default role claim type; Role.

(继承自 ClaimsIdentity)

属性

AccessToken

获取此 SafeAccessTokenHandle 实例的此 WindowsIdentityGets this SafeAccessTokenHandle for this WindowsIdentity instance.

Actor

获取或设置被授予委派权利的调用方的标识。Gets or sets the identity of the calling party that was granted delegation rights.

(继承自 ClaimsIdentity)
AuthenticationType

获取用于标识用户的身份验证的类型。Gets the type of authentication used to identify the user.

BootstrapContext

获取或设置用于创建此声明标识的令牌。Gets or sets the token that was used to create this claims identity.

(继承自 ClaimsIdentity)
Claims

为用户获取此 Windows 标识表示的所有声明。Gets all claims for the user represented by this Windows identity.

CustomSerializationData

包含派生类型提供的任何其他数据。Contains any additional data provided by a derived type. 通常在调用 WriteTo(BinaryWriter, Byte[]) 时设置。Typically set when calling WriteTo(BinaryWriter, Byte[]).

(继承自 ClaimsIdentity)
DeviceClaims

获取有 WindowsDeviceClaim 属性密钥的声明。Gets claims that have the WindowsDeviceClaim property key.

Groups

获取当前 Windows 用户所属的组。Gets the groups the current Windows user belongs to.

ImpersonationLevel

获取用户的模拟级别。Gets the impersonation level for the user.

IsAnonymous

获取一个值,该值指示系统是否将用户帐户标识为匿名帐户。Gets a value that indicates whether the user account is identified as an anonymous account by the system.

IsAuthenticated

获取一个值,该值指示 Windows 是否对用户进行了身份验证。Gets a value indicating whether the user has been authenticated by Windows.

IsGuest

获取一个值,该值指示系统是否将用户帐户标识为 Guest 帐户。Gets a value indicating whether the user account is identified as a Guest account by the system.

IsSystem

获取一个值,该值指示系统是否将用户帐户标识为 System 帐户。Gets a value indicating whether the user account is identified as a System account by the system.

Label

获取或设置此声明标识的标签。Gets or sets the label for this claims identity.

(继承自 ClaimsIdentity)
Name

获取用户的 Windows 登录名。Gets the user's Windows logon name.

NameClaimType

获取用于确定为此声明标识的 Name 属性提供值的声明的声明类型。Gets the claim type that is used to determine which claims provide the value for the Name property of this claims identity.

(继承自 ClaimsIdentity)
Owner

获取标记所有者的安全标识符 (SID)。Gets the security identifier (SID) for the token owner.

RoleClaimType

获取将解释为此声明标识中声明的 .NET Framework 角色的声明类型。Gets the claim type that will be interpreted as a .NET Framework role among the claims in this claims identity.

(继承自 ClaimsIdentity)
Token

获取用户的 Windows 帐户标记。Gets the Windows account token for the user.

User

获取用户的安全标识符 (SID)。Gets the security identifier (SID) for the user.

UserClaims

获取有 WindowsUserClaim 属性密钥的声明。Gets claims that have the WindowsUserClaim property key.

方法

AddClaim(Claim)

添加单个声明到此声明标识。Adds a single claim to this claims identity.

(继承自 ClaimsIdentity)
AddClaims(IEnumerable<Claim>)

添加声明列表到此声明标识。Adds a list of claims to this claims identity.

(继承自 ClaimsIdentity)
Clone()

创建作为当前实例副本的新对象。Creates a new object that is a copy of the current instance.

CreateClaim(BinaryReader)

为派生类型提供扩展点以创建自定义 ClaimProvides an extensibility point for derived types to create a custom Claim.

(继承自 ClaimsIdentity)
Dispose()

释放由 WindowsIdentity 使用的所有资源。Releases all resources used by the WindowsIdentity.

Dispose(Boolean)

释放由 WindowsIdentity 占用的非托管资源,还可以另外再释放托管资源。Releases the unmanaged resources used by the WindowsIdentity and optionally releases the managed resources.

Equals(Object)

确定指定的对象是否等于当前对象。Determines whether the specified object is equal to the current object.

(继承自 Object)
Finalize()

释放由当前实例所持有的资源。Releases the resources held by the current instance.

FindAll(Predicate<Claim>)

检索指定的谓词匹配的所有声明。Retrieves all of the claims that are matched by the specified predicate.

(继承自 ClaimsIdentity)
FindAll(String)

检索所有有指定声明类型的声明。Retrieves all of the claims that have the specified claim type.

(继承自 ClaimsIdentity)
FindFirst(Predicate<Claim>)

检索由指定谓词匹配的第一个声明。Retrieves the first claim that is matched by the specified predicate.

(继承自 ClaimsIdentity)
FindFirst(String)

使用指定的声明类型检索第一个声明。Retrieves the first claim with the specified claim type.

(继承自 ClaimsIdentity)
GetAnonymous()

返回 WindowsIdentity 对象,可在代码中将其用作 sentinel 值来表示匿名用户。Returns a WindowsIdentity object that you can use as a sentinel value in your code to represent an anonymous user. 属性值不表示 Windows 操作系统使用的内置匿名标识。The property value does not represent the built-in anonymous identity used by the Windows operating system.

GetCurrent()

返回表示当前 Windows 用户的 WindowsIdentity 对象。Returns a WindowsIdentity object that represents the current Windows user.

GetCurrent(Boolean)

返回一个 WindowsIdentity 对象,该对象表示线程或进程(具体取决于 ifImpersonating 参数的值)的 Windows 标识。Returns a WindowsIdentity object that represents the Windows identity for either the thread or the process, depending on the value of the ifImpersonating parameter.

GetCurrent(TokenAccessLevels)

返回一个 WindowsIdentity 对象,该对象使用指定的所需标记访问级别来表示当前 Windows 用户。Returns a WindowsIdentity object that represents the current Windows user, using the specified desired token access level.

GetHashCode()

用作默认哈希函数。Serves as the default hash function.

(继承自 Object)
GetObjectData(SerializationInfo, StreamingContext)

使用序列化当前的 SerializationInfo 对象所需的数据填充 ClaimsIdentityPopulates the SerializationInfo with data needed to serialize the current ClaimsIdentity object.

(继承自 ClaimsIdentity)
GetType()

获取当前实例的 TypeGets the Type of the current instance.

(继承自 Object)
HasClaim(Predicate<Claim>)

确定该声明标识是否拥有与指定条件相匹配的声明。Determines whether this claims identity has a claim that is matched by the specified predicate.

(继承自 ClaimsIdentity)
HasClaim(String, String)

确定该声明标识是否具备指定声明类型和值。Determines whether this claims identity has a claim with the specified claim type and value.

(继承自 ClaimsIdentity)
Impersonate()

模拟 WindowsIdentity 对象表示的用户。Impersonates the user represented by the WindowsIdentity object.

Impersonate(IntPtr)

模拟指定用户标记表示的用户。Impersonates the user represented by the specified user token.

MemberwiseClone()

创建当前 Object 的浅表副本。Creates a shallow copy of the current Object.

(继承自 Object)
RemoveClaim(Claim)

尝试从声明标识中移除一个声明。Attempts to remove a claim from the claims identity.

(继承自 ClaimsIdentity)
RunImpersonated(SafeAccessTokenHandle, Action)

作为模拟 Windows 标识运行指定操作。Runs the specified action as the impersonated Windows identity. 可以使用 RunImpersonated(SafeAccessTokenHandle, Action) 并直接作为参数提供函数,而不是使用模拟方法调用并在 WindowsImpersonationContext 中运行函数。Instead of using an impersonated method call and running your function in WindowsImpersonationContext, you can use RunImpersonated(SafeAccessTokenHandle, Action) and provide your function directly as a parameter.

RunImpersonated<T>(SafeAccessTokenHandle, Func<T>)

作为模拟 Windows 标识运行指定函数。Runs the specified function as the impersonated Windows identity. 可以使用 RunImpersonated(SafeAccessTokenHandle, Action) 并直接作为参数提供函数,而不是使用模拟方法调用并在 WindowsImpersonationContext 中运行函数。Instead of using an impersonated method call and running your function in WindowsImpersonationContext, you can use RunImpersonated(SafeAccessTokenHandle, Action) and provide your function directly as a parameter.

ToString()

返回一个表示当前对象的 string。Returns a string that represents the current object.

(继承自 Object)
TryRemoveClaim(Claim)

尝试从声明标识中移除一个声明。Attempts to remove a claim from the claims identity.

(继承自 ClaimsIdentity)
WriteTo(BinaryWriter)

使用 BinaryWriter 序列化。Serializes using a BinaryWriter.

(继承自 ClaimsIdentity)
WriteTo(BinaryWriter, Byte[])

使用 BinaryWriter 序列化。Serializes using a BinaryWriter.

(继承自 ClaimsIdentity)

显式接口实现

IDeserializationCallback.OnDeserialization(Object)

实现 ISerializable 接口,并在完成反序列化后由反序列化事件回调。Implements the ISerializable interface and is called back by the deserialization event when deserialization is complete.

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

用重新创建此执行上下文的实例所需的逻辑上下文信息设置 SerializationInfo 对象。Sets the SerializationInfo object with the logical context information needed to recreate an instance of this execution context.

适用于