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 (User Principal Name) で表されるユーザーを表す 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)

SerializationInfo ストリーム内の情報で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。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 (User Principal Name) と指定した認証の種類で表されるユーザーを表す 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. 常にuserToken Windows 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. UnmanagedCode (関連する列挙体)Associated 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 (User Principal Name) で表されるユーザーを表す 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 の形式は、 username@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. 以前のドメイン型に対しては例外がスローされます。An exception is thrown for earlier domain types. この制限は、このコンストラクターが Windows Server 2003 で初めて導入されたKERB_S4U_LOGON 構造体を使用していることが原因です。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. UnmanagedCode (関連する列挙体)Associated 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コンストラクターを使用して、指定した Windows アカウントトークンと指定した認証の種類によって表されるユーザーのWindowsIdentityクラスの新しいインスタンスを作成する方法を示しています。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 AuthenticationType Kerberos Negotiateの場合、セキュリティシステムは、windows Vista 以降のバージョンの windows オペレーティングシステムで、および以前のバージョンの windows オペレーティングシステムに対してをに設定します。 nullIf 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. 常にuserToken Windows 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. UnmanagedCode (関連する列挙体)Associated enumeration: UnmanagedCode.

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

SerializationInfo ストリーム内の情報で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。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 はプロセス間でシリアル化することはできません。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. 詳しくは、「Data Validation」(データの入力規則) を参照してください。For more information, see Data Validation.

セキュリティ

SecurityPermission
プリンシパルオブジェクトを操作する権限。for ability to manipulate the principal object. ControlPrincipal (関連する列挙体)Associated enumeration: ControlPrincipal.

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

指定した UPN (User Principal Name) と指定した認証の種類で表されるユーザーを表す 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 AuthenticationType Kerberos Negotiateの場合、セキュリティシステムは、windows Vista 以降のバージョンの windows オペレーティングシステムで、および以前のバージョンの windows オペレーティングシステムに対してをに設定します。 nullIf 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. 以前のドメイン型に対しては例外がスローされます。An exception is thrown for earlier domain types. この制限は、このコンストラクターが Windows Server 2003 で初めて導入されたKERB_S4U_LOGON 構造体を使用していることが原因です。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. UnmanagedCode (関連する列挙体)Associated 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

列挙値の 1 つ。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コンストラクターを使用して、指定した windows アカウントトークン、指定した認証の種類、および指定された windows アカウントの種類によって表されるユーザーのWindowsIdentityクラスの新しいインスタンスを作成する方法を示しています。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 AuthenticationType Kerberos Negotiateの場合、セキュリティシステムは、windows Vista 以降のバージョンの windows オペレーティングシステムで、および以前のバージョンの windows オペレーティングシステムに対してをに設定します。 nullIf 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. 常にuserToken Windows 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. UnmanagedCode (関連する列挙体)Associated 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

列挙値の 1 つ。One of the enumeration values.

isAuthenticated
Boolean Boolean Boolean Boolean

ユーザーが認証されていることを示す場合は true。それ以外の場合は falsetrue 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コンストラクターを使用して、指定した windows アカウントトークン、指定した認証の種類、指定された windows アカウントの種類、およびによって表されるユーザーのWindowsIdentityクラスの新しいインスタンスを作成する方法を示しています。指定された認証ステータス。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 AuthenticationType Kerberos Negotiateの場合、セキュリティシステムは、windows Vista 以降のバージョンの windows オペレーティングシステムで、および以前のバージョンの windows オペレーティングシステムに対してをに設定します。 nullIf 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. 常にuserToken Windows 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. UnmanagedCode (関連する列挙体)Associated enumeration: UnmanagedCode.

適用対象