This documentation is archived and is not being maintained.

WindowsIdentity Constructor (IntPtr, String, WindowsAccountType, Boolean)

Updated: December 2009

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.

Namespace:  System.Security.Principal
Assembly:  mscorlib (in mscorlib.dll)

public:
WindowsIdentity(
	IntPtr userToken, 
	String^ type, 
	WindowsAccountType acctType, 
	bool isAuthenticated
)

Parameters

userToken
Type: System::IntPtr

The account token for the user on whose behalf the code is running.

type
Type: System::String

(Informational) The type of authentication used to identify the user. For more information, see Remarks.

acctType
Type: System.Security.Principal::WindowsAccountType

One of the WindowsAccountType values.

isAuthenticated
Type: System::Boolean

true to indicate that the user is authenticated; otherwise, false.

ExceptionCondition
ArgumentException

userToken is 0.

-or-

userToken is duplicated and invalid for impersonation.

SecurityException

The caller does not have the correct permissions.

-or-

A Win32 error occurred.

The value of the type parameter is used to set the AuthenticationType parameter. If type is nullptr, 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.

You can retrieve the token represented by userToken by calling unmanaged code such as the Win32 API LogonUser function. Always release userToken by calling the Win32 API Close function. For more information on calling unmanaged code, see Consuming Unmanaged DLL Functions.

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

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

Date

History

Reason

December 2009

Updated information about the type parameter.

Customer feedback.

Show: