WindowsIdentity コンストラクター
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
WindowsIdentity クラスの新しいインスタンスを初期化します。
オーバーロード
WindowsIdentity(IntPtr) |
指定した Windows アカウント トークンによって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity(WindowsIdentity) |
指定した WindowsIdentity オブジェクトを使用して、WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity(String) |
指定した UPN (User Principal Name) で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity(IntPtr, String) |
指定した Windows アカウント トークンと指定した認証の種類によって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity(SerializationInfo, StreamingContext) |
古い.
SerializationInfo ストリーム内の情報で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity(String, String) |
指定した UPN (User Principal Name) と指定した認証の種類で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity(IntPtr, String, WindowsAccountType) |
指定した Windows アカウント トークン、指定した認証の種類、および指定した Windows アカウントの種類によって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean) |
指定した Windows アカウント トークン、指定した認証の種類、指定した Windows アカウントの種類、および指定した認証ステータスによって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。 |
WindowsIdentity(IntPtr)
指定した Windows アカウント トークンによって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。
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
nativeint
コードが実行されている対象ユーザーのアカウント トークン。
例外
注釈
のインスタンスの初期プロパティ値を次の WindowsIdentity表に示します。
プロパティ | 初期値 |
---|---|
AuthenticationType | Negotiate |
WindowsAccountType | Normal |
IsAuthenticated | false |
注意
によって表される userToken
トークンを取得するには、Windows API LogonUser
関数などのアンマネージ コードを呼び出します。 Windows API CloseHandle
関数を呼び出して、常にリリースuserToken
します。 アンマネージド コードの呼び出しの詳細については、「 アンマネージ DLL 関数の使用」を参照してください。
適用対象
WindowsIdentity(WindowsIdentity)
指定した WindowsIdentity オブジェクトを使用して、WindowsIdentity クラスの新しいインスタンスを初期化します。
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(String)
指定した UPN (User Principal Name) で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。
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
コードが実行されている対象ユーザーの UPN。
例外
Windows は、Windows NT ステータス コード STATUS_ACCESS_DENIED を返しました。
使用できるメモリが不足しています。
呼び出し元に、正しいアクセス許可がありません。
- または -
コンピューターは Windows 2003 以降のドメインに接続されていません。
- または -
コンピューターは Windows 2003 以降を実行していません。
- または -
ユーザーは、コンピューターが接続されているドメインのメンバーではありません。
注釈
UPN には、 ユーザー名@domainname.com、つまりメール アドレスという形式があります。 で sUserPrincipalName
識別される UPN は、Windows API LsaLogonUser
関数を使用してそのユーザーのトークンを取得するために使用されます。 次に、そのトークンを使用してユーザーを識別します。 指定された UPN を使用してログオンできないため、例外が返される可能性があります。
注意
このコンストラクターは、Windows Server 2003 以降のドメインに参加しているコンピューターでのみ使用することを目的としています。 以前のドメインの種類では例外がスローされます。 この制限は、このコンストラクターが Windows Server 2003 で最初に導入された KERB_S4U_LOGON構造を使用するためです。 また、このコンストラクターには、ターゲット ユーザー アカウント の token-groups-global-and-universal (TGGAU) 属性 への読み取りアクセスが必要です。
適用対象
WindowsIdentity(IntPtr, String)
指定した Windows アカウント トークンと指定した認証の種類によって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。
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
nativeint
コードが実行されている対象ユーザーのアカウント トークン。
- type
- String
(情報使用のみ。) ユーザーを識別するために使用される認証の種類。
例外
例
次のコードは、コンストラクターを WindowsIdentity 使用して、指定した Windows アカウント トークンと指定した認証の WindowsIdentity 種類で表されるユーザーの クラスの新しいインスタンスを作成する方法を示しています。 このコード例は、WindowsIdentity クラスのために提供されている大規模な例の一部です。
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表に示します。
プロパティ | 初期値 |
---|---|
WindowsAccountType | Normal |
IsAuthenticated | false |
パラメーターの値は、 type
パラメーターの設定 AuthenticationType に使用されます。 が のnull
場合type
、セキュリティ システムは Windows Vista 以降のバージョンの Windows オペレーティング システムでは に、以前のバージョンの Windows オペレーティング システムでは にKerberos
設定AuthenticationTypeNegotiate
されます。 セキュリティ システムでは、この値は使用されません。これは情報提供のみを目的としています。
注意
によって表される userToken
トークンを取得するには、Windows API LogonUser
関数などのアンマネージ コードを呼び出します。 Windows API CloseHandle
関数を呼び出して、常にリリースuserToken
します。 アンマネージド コードの呼び出しの詳細については、「 アンマネージ DLL 関数の使用」を参照してください。
適用対象
WindowsIdentity(SerializationInfo, StreamingContext)
注意事項
This API supports obsolete formatter-based serialization. It should not be called or extended by application code.
SerializationInfo ストリーム内の情報で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。
public:
WindowsIdentity(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
public WindowsIdentity (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
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
[<System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
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
ユーザーのアカウント情報を格納するオブジェクト。
- context
- StreamingContext
ストリーム特性を示すオブジェクト。
- 属性
例外
WindowsIdentity はプロセス間でシリアル化することはできません。
注釈
重要
信頼されていないデータを指定してこのメソッドを呼び出すことは、セキュリティ上のリスクが伴います。 このメソッドは信頼されたデータでのみ呼び出してください。 詳細については、「 すべての入力を検証する」を参照してください。
適用対象
WindowsIdentity(String, String)
指定した UPN (User Principal Name) と指定した認証の種類で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。
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
コードが実行されている対象ユーザーの UPN。
- type
- String
(情報使用のみ。) ユーザーを識別するために使用される認証の種類。
例外
Windows は、Windows NT ステータス コード STATUS_ACCESS_DENIED を返しました。
使用できるメモリが不足しています。
呼び出し元に、正しいアクセス許可がありません。
- または -
コンピューターは Windows 2003 以降のドメインに接続されていません。
- または -
コンピューターは Windows 2003 以降を実行していません。
- または -
ユーザーは、コンピューターが接続されているドメインのメンバーではありません。
注釈
パラメーターの値は type
、 パラメーターの設定 AuthenticationType に使用されます。 が の場合type
、セキュリティ システムは null
Windows Vista 以降のバージョンの Windows オペレーティング システムでは に、以前のバージョンの Windows オペレーティング システムでは にKerberos
設定AuthenticationTypeNegotiate
されます。 セキュリティ システムでは、この値は使用されません。これは情報提供のみを目的としています。
で sUserPrincipalName
識別される UPN は、Windows API LsaLogonUser
関数を使用してそのユーザーのトークンを取得するために使用されます。 次に、そのトークンを使用してユーザーを識別します。 指定された UPN を使用してログオンできないため、例外が返される可能性があります。
注意
このコンストラクターは、Windows Server 2003 以降のドメインに参加しているコンピューターでのみ使用することを目的としています。 以前のドメインの種類では例外がスローされます。 この制限は、このコンストラクターが Windows Server 2003 で最初に導入された KERB_S4U_LOGON構造体を使用するためです。 また、このコンストラクターには、ターゲット ユーザー アカウントの token-groups-global-and-universal (TGGAU) 属性 への読み取りアクセスが必要です。
適用対象
WindowsIdentity(IntPtr, String, WindowsAccountType)
指定した Windows アカウント トークン、指定した認証の種類、および指定した Windows アカウントの種類によって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。
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
nativeint
コードが実行されている対象ユーザーのアカウント トークン。
- type
- String
(情報使用のみ。) ユーザーを識別するために使用される認証の種類。
- acctType
- WindowsAccountType
列挙値の 1 つ。
例外
例
次のコードは、コンストラクターを WindowsIdentity 使用して、指定した Windows アカウント トークン、指定した認証の種類、および指定した Windows アカウントの WindowsIdentity 種類で表されるユーザーの クラスの新しいインスタンスを作成する方法を示しています。 このコード例は、WindowsIdentity クラスのために提供されている大規模な例の一部です。
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表に示します。
プロパティ | 初期値 |
---|---|
IsAuthenticated | false |
パラメーターの値は type
、 パラメーターの設定 AuthenticationType に使用されます。 が の場合type
、セキュリティ システムは null
Windows Vista 以降のバージョンの Windows オペレーティング システムでは に、以前のバージョンの Windows オペレーティング システムでは にKerberos
設定AuthenticationTypeNegotiate
されます。 セキュリティ システムでは、この値は使用されません。これは情報提供のみを目的としています。
注意
によって表される userToken
トークンを取得するには、Windows API LogonUser
関数などのアンマネージ コードを呼び出します。 Windows API CloseHandle
関数を呼び出して、常に解放userToken
します。 アンマネージ コードの呼び出しの詳細については、「 アンマネージ DLL 関数の使用」を参照してください。
適用対象
WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)
指定した Windows アカウント トークン、指定した認証の種類、指定した Windows アカウントの種類、および指定した認証ステータスによって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。
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
nativeint
コードが実行されている対象ユーザーのアカウント トークン。
- type
- String
(情報使用のみ。) ユーザーを識別するために使用される認証の種類。
- acctType
- WindowsAccountType
列挙値の 1 つ。
- isAuthenticated
- Boolean
ユーザーが認証されていることを示す場合は true
。それ以外の場合は false
。
例外
例
次のコードは、コンストラクターを WindowsIdentity 使用して、指定した Windows アカウント トークン、指定した認証の種類、指定した Windows アカウントの WindowsIdentity 種類、および指定した認証状態で表されるユーザーの クラスの新しいインスタンスを作成する方法を示しています。 このコード例は、WindowsIdentity クラスのために提供されている大規模な例の一部です。
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 に使用されます。 が の場合type
、セキュリティ システムは null
Windows Vista 以降のバージョンの Windows オペレーティング システムでは に、以前のバージョンの Windows オペレーティング システムでは にKerberos
設定AuthenticationTypeNegotiate
されます。 セキュリティ システムでは、この値は使用されません。これは情報提供のみを目的としています。
によって表される userToken
トークンを取得するには、Windows API LogonUser
関数などのアンマネージ コードを呼び出します。 Windows API CloseHandle
関数を呼び出して、常に解放userToken
します。 アンマネージ コードの呼び出しの詳細については、「 アンマネージ DLL 関数の使用」を参照してください。
適用対象
.NET