WindowsIdentity Constructor (IntPtr, String, WindowsAccountType, Boolean)
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.
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 use only.) The type of authentication used to identify the user. For more information, see Remarks.
- acctType
-
Type:
System.Security.Principal.WindowsAccountType
One of the enumeration values.
- isAuthenticated
-
Type:
System.Boolean
true to indicate that the user is authenticated; otherwise, false.
| Exception | Condition |
|---|---|
| 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 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.
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 CloseHandle 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.
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 + "."); }
for the ability to manipulate the principal object. Associated enumeration: SecurityPermissionFlag.ControlPrincipal.
for the ability to access unmanaged code. Associated enumeration: SecurityPermissionFlag.UnmanagedCode.
Available since 1.1