WindowsIdentity WindowsIdentity WindowsIdentity WindowsIdentity Constructors

정의

오버로드

WindowsIdentity(IntPtr) WindowsIdentity(IntPtr) WindowsIdentity(IntPtr) WindowsIdentity(IntPtr)

지정된 Windows 계정 토큰이 나타내는 사용자에 대해 WindowsIdentity 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token.

WindowsIdentity(WindowsIdentity) WindowsIdentity(WindowsIdentity) WindowsIdentity(WindowsIdentity) WindowsIdentity(WindowsIdentity)

지정된 WindowsIdentity 개체를 사용하여 WindowsIdentity 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the WindowsIdentity class by using the specified WindowsIdentity object.

WindowsIdentity(String) WindowsIdentity(String) WindowsIdentity(String) WindowsIdentity(String)

지정된 UPN(사용자 계정 이름)이 나타내는 사용자에 대해 WindowsIdentity 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the WindowsIdentity class for the user represented by the specified User Principal Name (UPN).

WindowsIdentity(IntPtr, String) WindowsIdentity(IntPtr, String) WindowsIdentity(IntPtr, String) 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(SerializationInfo, StreamingContext) WindowsIdentity(SerializationInfo, StreamingContext) WindowsIdentity(SerializationInfo, StreamingContext) WindowsIdentity(SerializationInfo, StreamingContext)

WindowsIdentity 스트림의 정보가 나타내는 사용자에 대해 SerializationInfo 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the WindowsIdentity class for the user represented by information in a SerializationInfo stream.

WindowsIdentity(String, String) WindowsIdentity(String, String) WindowsIdentity(String, String) 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(IntPtr, String, WindowsAccountType) WindowsIdentity(IntPtr, String, WindowsAccountType) WindowsIdentity(IntPtr, String, WindowsAccountType) 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) WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) 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(IntPtr) WindowsIdentity(IntPtr) WindowsIdentity(IntPtr) WindowsIdentity(IntPtr)

지정된 Windows 계정 토큰이 나타내는 사용자에 대해 WindowsIdentity 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the WindowsIdentity class for the user represented by the specified Windows account token.

public:
 WindowsIdentity(IntPtr userToken);
public WindowsIdentity (IntPtr userToken);
new System.Security.Principal.WindowsIdentity : nativeint -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr)

매개 변수

userToken
IntPtr IntPtr IntPtr IntPtr

코드를 실행하고 있는 사용자를 나타내는 계정 토큰입니다.The account token for the user on whose behalf the code is running.

예외

userToken가 0입니다.userToken is 0.

또는-or- userToken이 중복되었고 가장에 사용할 수 없는 경우userToken is duplicated and invalid for impersonation.

호출자에게 올바른 권한이 없습니다.The caller does not have the correct permissions.

또는-or-

Win32 오류가 발생한 경우A Win32 error occurred.

설명

다음 표에서 인스턴스에 대 한 초기 속성 값을 보여 줍니다. WindowsIdentity합니다.The following table shows initial property values for an instance of WindowsIdentity.

속성Property 초기 값Initial value
AuthenticationType Negotiate
WindowsAccountType Normal
IsAuthenticated false

참고

Windows API userToken LogonUser 함수와 같은 비관리 코드를 호출 하 여이 나타내는 토큰을 검색할 수 있습니다.You can retrieve the token represented by userToken by calling unmanaged code such as the Windows API LogonUser function. 항상 Windows userToken API CloseHandle 함수를 호출 하 여 릴리스 합니다.Always release userToken by calling the Windows API CloseHandle function. 비관리 코드 호출에 대 한 자세한 내용은 참조 하세요. 관리 되지 않는 DLL 함수 사용합니다.For more information on calling unmanaged code, see Consuming Unmanaged DLL Functions.

보안

SecurityPermission
비관리 코드에 액세스할 수 있습니다.for the ability to access unmanaged code. 연관된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode.

WindowsIdentity(WindowsIdentity) WindowsIdentity(WindowsIdentity) WindowsIdentity(WindowsIdentity) WindowsIdentity(WindowsIdentity)

지정된 WindowsIdentity 개체를 사용하여 WindowsIdentity 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the WindowsIdentity class by using the specified WindowsIdentity object.

protected:
 WindowsIdentity(System::Security::Principal::WindowsIdentity ^ identity);
protected WindowsIdentity (System.Security.Principal.WindowsIdentity identity);
new System.Security.Principal.WindowsIdentity : System.Security.Principal.WindowsIdentity -> System.Security.Principal.WindowsIdentity
Protected Sub New (identity As WindowsIdentity)

매개 변수

identity
WindowsIdentity WindowsIdentity WindowsIdentity WindowsIdentity

WindowsIdentity의 새 인스턴스를 만들 개체입니다.The object from which to construct the new instance of WindowsIdentity.

WindowsIdentity(String) WindowsIdentity(String) WindowsIdentity(String) WindowsIdentity(String)

지정된 UPN(사용자 계정 이름)이 나타내는 사용자에 대해 WindowsIdentity 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the WindowsIdentity class for the user represented by the specified User Principal Name (UPN).

public:
 WindowsIdentity(System::String ^ sUserPrincipalName);
public WindowsIdentity (string sUserPrincipalName);
new System.Security.Principal.WindowsIdentity : string -> System.Security.Principal.WindowsIdentity
Public Sub New (sUserPrincipalName As String)

매개 변수

sUserPrincipalName
String String String String

코드를 실행하고 있는 사용자의 UPN입니다.The UPN for the user on whose behalf the code is running.

예외

Windows에서 Windows NT 상태 코드 STATUS_ACCESS_DENIED를 반환했습니다.Windows returned the Windows NT status code STATUS_ACCESS_DENIED.

사용 가능한 메모리가 부족한 경우There is insufficient memory available.

호출자에게 올바른 권한이 없습니다.The caller does not have the correct permissions.

또는-or-

Windows 2003 또는 높은 버전 도메인에 컴퓨터가 연결되어 있지 않습니다.The computer is not attached to a Windows 2003 or later domain.

또는-or-

컴퓨터가 Windows 2003 이상에서 실행되고 있지 않습니다.The computer is not running Windows 2003 or later.

또는-or-

사용자는 컴퓨터에 연결된 도메인의 멤버가 아닙니다.The user is not a member of the domain the computer is attached to.

설명

UPN 형식은 사용자 이름@domainname.com, 즉, 전자 메일 주소입니다.A UPN has the format username@domainname.com, in other words, an email address. 에서 sUserPrincipalName 식별 된 UPN은 Windows API LsaLogonUser 함수를 통해 해당 사용자에 대 한 토큰을 검색 하는 데 사용 됩니다.The UPN identified in sUserPrincipalName is used to retrieve a token for that user through the Windows API LsaLogonUser function. 사용자를 식별 하는 토큰이 사용 됩니다.In turn that token is used to identify the user. 제공 된 UPN을 사용 하 여 로그온 할 수 없는 예외가 반환 될 수 있습니다.An exception might be returned due to the inability to log on using the supplied UPN.

참고

이 생성자는 Windows Server 2003 또는 이후 도메인에 가입 된 컴퓨터에만 사용 하 여 위한 것입니다.This constructor is intended for use only on computers joined to Windows Server 2003 or later domains. 이전 도메인 형식에 대 한 예외가 throw 됩니다.An exception is thrown for earlier domain types. 이 제한은 때문에이 생성자를 사용 합니다 KERB_S4U_LOGON 구조, Windows Server 2003에서 도입 된 첫 번째입니다.This restriction is due to the fact that this constructor uses the KERB_S4U_LOGON structure, which was first introduced in Windows Server 2003.

보안

SecurityPermission
비관리 코드에 액세스할 수 있습니다.for the ability to access unmanaged code. 연관된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode.

WindowsIdentity(IntPtr, String) WindowsIdentity(IntPtr, String) WindowsIdentity(IntPtr, String) 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.

public:
 WindowsIdentity(IntPtr userToken, System::String ^ type);
public WindowsIdentity (IntPtr userToken, string type);
new System.Security.Principal.WindowsIdentity : nativeint * string -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr, type As String)

매개 변수

userToken
IntPtr IntPtr IntPtr IntPtr

코드를 실행하고 있는 사용자를 나타내는 계정 토큰입니다.The account token for the user on whose behalf the code is running.

type
String String String String

정보 전달만을 목적으로 합니다. 사용자를 식별하는 데 사용되는 인증 형식입니다.(Informational use only.) The type of authentication used to identify the user.

예외

userToken가 0입니다.userToken is 0.

또는-or- userToken이 중복되었고 가장에 사용할 수 없는 경우userToken is duplicated and invalid for impersonation.

호출자에게 올바른 권한이 없습니다.The caller does not have the correct permissions.

또는-or-

Win32 오류가 발생한 경우A Win32 error occurred.

예제

다음 코드의 사용을 보여 줍니다.는 WindowsIdentity 의 새 인스턴스를 만들려면 생성자를 WindowsIdentity 지정된 된 Windows 계정 토큰 및 지정 된 인증 형식이 나타내는 사용자에 대 한 클래스입니다.The following code shows the use of the WindowsIdentity constructor to create a new instance of the WindowsIdentity class for the user represented by the specified Windows account token and the specified authentication type. 이 코드 예제는에 대해 제공 된 큰 예제의 일부는 WindowsIdentity 클래스입니다.This code example is part of a larger example provided for the WindowsIdentity class.

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

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 + ".");
}
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

설명

다음 표에서 인스턴스에 대 한 초기 속성 값을 보여 줍니다. WindowsIdentity합니다.The following table shows initial property values for an instance of WindowsIdentity.

속성Property 초기 값Initial value
WindowsAccountType Normal
IsAuthenticated false

값을 type 매개 변수는 설정 하는 데 사용 되는 AuthenticationType 매개 변수입니다.The value of the type parameter is used to set the AuthenticationType parameter. 경우 type 됩니다 null, 보안 시스템 집합 AuthenticationTypeNegotiate Windows Vista 및 이후 버전의 Windows 운영 체제의 Kerberos 이전 버전의 Windows 운영 체제에서.If type is null, the security system sets AuthenticationType to Negotiate on Windows Vista and later versions of the Windows operating system, and to Kerberos on earlier versions of the Windows operating system. 보안 시스템에서이 값을 사용 하지 않습니다. 으로만 사용 됩니다.The security system does not use this value; it is for informational use only.

참고

Windows API userToken LogonUser 함수와 같은 비관리 코드를 호출 하 여이 나타내는 토큰을 검색할 수 있습니다.You can retrieve the token represented by userToken by calling unmanaged code such as the Windows API LogonUser function. 항상 Windows userToken API CloseHandle 함수를 호출 하 여 릴리스 합니다.Always release userToken by calling the Windows API CloseHandle function. 비관리 코드 호출에 대 한 자세한 내용은 참조 하세요. 관리 되지 않는 DLL 함수 사용합니다.For more information on calling unmanaged code, see Consuming Unmanaged DLL Functions.

보안

SecurityPermission
비관리 코드에 액세스할 수 있습니다.for the ability to access unmanaged code. 연관된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode.

WindowsIdentity(SerializationInfo, StreamingContext) WindowsIdentity(SerializationInfo, StreamingContext) WindowsIdentity(SerializationInfo, StreamingContext) WindowsIdentity(SerializationInfo, StreamingContext)

WindowsIdentity 스트림의 정보가 나타내는 사용자에 대해 SerializationInfo 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the WindowsIdentity class for the user represented by information in a SerializationInfo stream.

public:
 WindowsIdentity(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
public WindowsIdentity (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
new System.Security.Principal.WindowsIdentity : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Security.Principal.WindowsIdentity
Public Sub New (info As SerializationInfo, context As StreamingContext)

매개 변수

info
SerializationInfo SerializationInfo SerializationInfo SerializationInfo

사용자에 대한 계정 정보가 포함된 개체입니다.The object containing the account information for the user.

context
StreamingContext StreamingContext StreamingContext StreamingContext

스트림 특징을 나타내는 개체입니다.An object that indicates the stream characteristics.

예외

WindowsIdentity가 둘 이상의 프로세스에 걸쳐 serialize될 수 없는 경우A WindowsIdentity cannot be serialized across processes.

호출자에게 올바른 권한이 없습니다.The caller does not have the correct permissions.

또는-or-

Win32 오류가 발생한 경우A Win32 error occurred.

설명

중요

신뢰할 수 없는 데이터로 이 메서드를 호출하는 것은 보안상 위험합니다.Calling this method with untrusted data is a security risk. 신뢰할 수 있는 데이터로만 이 메서드를 호출하세요.Call this method only with trusted data. 자세한 내용은 데이터 유효성을 참조하세요.For more information, see Data Validation.

보안

SecurityPermission
보안 주체 개체를 조작 하는 기능입니다.for ability to manipulate the principal object. 연관된 열거형: ControlPrincipalAssociated enumeration: ControlPrincipal.

WindowsIdentity(String, String) WindowsIdentity(String, String) WindowsIdentity(String, String) 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.

public:
 WindowsIdentity(System::String ^ sUserPrincipalName, System::String ^ type);
public WindowsIdentity (string sUserPrincipalName, string type);
new System.Security.Principal.WindowsIdentity : string * string -> System.Security.Principal.WindowsIdentity
Public Sub New (sUserPrincipalName As String, type As String)

매개 변수

sUserPrincipalName
String String String String

코드를 실행하고 있는 사용자의 UPN입니다.The UPN for the user on whose behalf the code is running.

type
String String String String

정보 전달만을 목적으로 합니다. 사용자를 식별하는 데 사용되는 인증 형식입니다.(Informational use only.) The type of authentication used to identify the user.

예외

Windows에서 Windows NT 상태 코드 STATUS_ACCESS_DENIED를 반환했습니다.Windows returned the Windows NT status code STATUS_ACCESS_DENIED.

사용 가능한 메모리가 부족한 경우There is insufficient memory available.

호출자에게 올바른 권한이 없습니다.The caller does not have the correct permissions.

또는-or-

Windows 2003 또는 높은 버전 도메인에 컴퓨터가 연결되어 있지 않습니다.The computer is not attached to a Windows 2003 or later domain.

또는-or-

컴퓨터가 Windows 2003 이상에서 실행되고 있지 않습니다.The computer is not running Windows 2003 or later.

또는-or-

사용자는 컴퓨터에 연결된 도메인의 멤버가 아닙니다.The user is not a member of the domain the computer is attached to.

설명

값을 type 매개 변수는 설정 하는 데 사용 되는 AuthenticationType 매개 변수입니다.The value of the type parameter is used to set the AuthenticationType parameter. 경우 type 됩니다 null, 보안 시스템 집합 AuthenticationTypeNegotiate Windows Vista 및 이후 버전의 Windows 운영 체제의 Kerberos 이전 버전의 Windows 운영 체제에서.If type is null, the security system sets AuthenticationType to Negotiate on Windows Vista and later versions of the Windows operating system, and to Kerberos on earlier versions of the Windows operating system. 보안 시스템에서이 값을 사용 하지 않습니다. 으로만 사용 됩니다.The security system does not use this value; it is for informational use only.

에서 sUserPrincipalName 식별 된 UPN은 Windows API LsaLogonUser 함수를 통해 해당 사용자에 대 한 토큰을 검색 하는 데 사용 됩니다.The UPN identified in sUserPrincipalName is used to retrieve a token for that user through the Windows API LsaLogonUser function. 사용자를 식별 하는 토큰이 사용 됩니다.In turn that token is used to identify the user. 제공 된 UPN을 사용 하 여 로그온 할 수 없는 예외가 반환 될 수 있습니다.An exception might be returned due to the inability to log on using the supplied UPN.

참고

이 생성자는 Windows Server 2003 또는 이후 도메인에 가입 된 컴퓨터에만 사용 하 여 위한 것입니다.This constructor is intended for use only on computers joined to Windows Server 2003 or later domains. 이전 도메인 형식에 대 한 예외가 throw 됩니다.An exception is thrown for earlier domain types. 이 제한은 때문에이 생성자를 사용 합니다 KERB_S4U_LOGON 구조, Windows Server 2003에서 도입 된 첫 번째입니다.This restriction is due to the fact that this constructor uses the KERB_S4U_LOGON structure, which was first introduced in Windows Server 2003.

보안

SecurityPermission
비관리 코드에 액세스할 수 있습니다.for the ability to access unmanaged code. 연관된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode.

WindowsIdentity(IntPtr, String, WindowsAccountType) WindowsIdentity(IntPtr, String, WindowsAccountType) WindowsIdentity(IntPtr, String, WindowsAccountType) 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.

public:
 WindowsIdentity(IntPtr userToken, System::String ^ type, System::Security::Principal::WindowsAccountType acctType);
public WindowsIdentity (IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType);
new System.Security.Principal.WindowsIdentity : nativeint * string * System.Security.Principal.WindowsAccountType -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr, type As String, acctType As WindowsAccountType)

매개 변수

userToken
IntPtr IntPtr IntPtr IntPtr

코드를 실행하고 있는 사용자를 나타내는 계정 토큰입니다.The account token for the user on whose behalf the code is running.

type
String String String String

정보 전달만을 목적으로 합니다. 사용자를 식별하는 데 사용되는 인증 형식입니다.(Informational use only.) The type of authentication used to identify the user.

acctType
WindowsAccountType WindowsAccountType WindowsAccountType WindowsAccountType

열거형 값 중 하나입니다.One of the enumeration values.

예외

userToken가 0입니다.userToken is 0.

또는-or- userToken이 중복되었고 가장에 사용할 수 없는 경우userToken is duplicated and invalid for impersonation.

호출자에게 올바른 권한이 없습니다.The caller does not have the correct permissions.

또는-or-

Win32 오류가 발생한 경우A Win32 error occurred.

예제

다음 코드의 사용을 보여 줍니다.는 WindowsIdentity 의 새 인스턴스를 만들려면 생성자를 WindowsIdentity 지정된 된 Windows 계정 토큰, 지정 된 인증 형식 및 지정 된 Windows 계정 유형이 나타내는 사용자에 대 한 클래스입니다.The following code shows the use of the WindowsIdentity constructor to create 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 클래스입니다.This code example is part of a larger example provided for the WindowsIdentity class.

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 );
}
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 + ".");
}
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

설명

다음 표에서 인스턴스에 대 한 초기 속성 값을 보여 줍니다. WindowsIdentity합니다.The following table shows initial property values for an instance of WindowsIdentity.

속성Property 초기 값Initial Value
IsAuthenticated false

값을 type 매개 변수는 설정 하는 데 사용 되는 AuthenticationType 매개 변수입니다.The value of the type parameter is used to set the AuthenticationType parameter. 경우 type 됩니다 null, 보안 시스템 집합 AuthenticationTypeNegotiate Windows Vista 및 이후 버전의 Windows 운영 체제의 Kerberos 이전 버전의 Windows 운영 체제에서.If type is null, the security system sets AuthenticationType to Negotiate on Windows Vista and later versions of the Windows operating system, and to Kerberos on earlier versions of the Windows operating system. 보안 시스템에서이 값을 사용 하지 않습니다. 으로만 사용 됩니다.The security system does not use this value; it is for informational use only.

참고

Windows API userToken LogonUser 함수와 같은 비관리 코드를 호출 하 여이 나타내는 토큰을 검색할 수 있습니다.You can retrieve the token represented by userToken by calling unmanaged code such as the Windows API LogonUser function. 항상 Windows userToken API CloseHandle 함수를 호출 하 여 릴리스 합니다.Always release userToken by calling the Windows API CloseHandle function. 비관리 코드 호출에 대 한 자세한 내용은 참조 하세요. 관리 되지 않는 DLL 함수 사용합니다.For more information on calling unmanaged code, see Consuming Unmanaged DLL Functions.

보안

SecurityPermission
비관리 코드에 액세스할 수 있습니다.for the ability to access unmanaged code. 연관된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode.

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) 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.

public:
 WindowsIdentity(IntPtr userToken, System::String ^ type, System::Security::Principal::WindowsAccountType acctType, bool isAuthenticated);
public WindowsIdentity (IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType, bool isAuthenticated);
new System.Security.Principal.WindowsIdentity : nativeint * string * System.Security.Principal.WindowsAccountType * bool -> System.Security.Principal.WindowsIdentity
Public Sub New (userToken As IntPtr, type As String, acctType As WindowsAccountType, isAuthenticated As Boolean)

매개 변수

userToken
IntPtr IntPtr IntPtr IntPtr

코드를 실행하고 있는 사용자를 나타내는 계정 토큰입니다.The account token for the user on whose behalf the code is running.

type
String String String String

정보 전달만을 목적으로 합니다. 사용자를 식별하는 데 사용되는 인증 형식입니다.(Informational use only.) The type of authentication used to identify the user.

acctType
WindowsAccountType WindowsAccountType WindowsAccountType WindowsAccountType

열거형 값 중 하나입니다.One of the enumeration values.

isAuthenticated
Boolean Boolean Boolean Boolean

인증된 사용자이면 true이고, 그렇지 않으면 false입니다.true to indicate that the user is authenticated; otherwise, false.

예외

userToken가 0입니다.userToken is 0.

또는-or- userToken이 중복되었고 가장에 사용할 수 없는 경우userToken is duplicated and invalid for impersonation.

호출자에게 올바른 권한이 없습니다.The caller does not have the correct permissions.

또는-or-

Win32 오류가 발생한 경우A Win32 error occurred.

예제

다음 코드의 사용을 보여 줍니다.는 WindowsIdentity 의 새 인스턴스를 만들려면 생성자를 WindowsIdentity 지정된 된 Windows 계정 토큰, 지정 된 인증 형식, 지정 된 Windows 계정 유형을 나타내는 사용자에 대 한 클래스 및 지정 된 인증 상태입니다.The following code shows the use of the WindowsIdentity constructor to create 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 클래스입니다.This code example is part of a larger example provided for the WindowsIdentity class.

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 );
}
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 + ".");
}
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

설명

값을 type 매개 변수는 설정 하는 데 사용 되는 AuthenticationType 매개 변수입니다.The value of the type parameter is used to set the AuthenticationType parameter. 경우 type 됩니다 null, 보안 시스템 집합 AuthenticationTypeNegotiate Windows Vista 및 이후 버전의 Windows 운영 체제의 Kerberos 이전 버전의 Windows 운영 체제에서.If type is null, the security system sets AuthenticationType to Negotiate on Windows Vista and later versions of the Windows operating system, and to Kerberos on earlier versions of the Windows operating system. 보안 시스템에서이 값을 사용 하지 않습니다. 으로만 사용 됩니다.The security system does not use this value; it is for informational use only.

Windows API userToken LogonUser 함수와 같은 비관리 코드를 호출 하 여이 나타내는 토큰을 검색할 수 있습니다.You can retrieve the token represented by userToken by calling unmanaged code such as the Windows API LogonUser function. 항상 Windows userToken API CloseHandle 함수를 호출 하 여 릴리스 합니다.Always release userToken by calling the Windows API CloseHandle function. 비관리 코드 호출에 대 한 자세한 내용은 참조 하세요. 관리 되지 않는 DLL 함수 사용합니다.For more information on calling unmanaged code, see Consuming Unmanaged DLL Functions.

보안

SecurityPermission
비관리 코드에 액세스할 수 있습니다.for the ability to access unmanaged code. 연관된 열거형: UnmanagedCodeAssociated enumeration: UnmanagedCode.

적용 대상