英語で読む

次の方法で共有


WindowsIdentity コンストラクター

定義

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 クラスの新しいインスタンスを初期化します。

C#
public WindowsIdentity (IntPtr userToken);

パラメーター

userToken
IntPtr

コードが実行されている対象ユーザーのアカウント トークン。

例外

userToken が 0 です。

- または -

userToken は、複製され、偽装に対して無効になっています。

呼び出し元に、正しいアクセス許可がありません。

- または -

Win32 エラーが発生しました。

注釈

のインスタンスの初期プロパティ値を次の WindowsIdentity表に示します。

プロパティ 初期値
AuthenticationType Negotiate
WindowsAccountType Normal
IsAuthenticated false

注意

によって表される userToken トークンを取得するには、Windows API LogonUser 関数などのアンマネージ コードを呼び出します。 Windows API CloseHandle 関数を呼び出して、常にリリースuserTokenします。 アンマネージド コードの呼び出しの詳細については、「 アンマネージ DLL 関数の使用」を参照してください。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

WindowsIdentity(WindowsIdentity)

指定した WindowsIdentity オブジェクトを使用して、WindowsIdentity クラスの新しいインスタンスを初期化します。

C#
protected WindowsIdentity (System.Security.Principal.WindowsIdentity identity);

パラメーター

identity
WindowsIdentity

WindowsIdentity の新しいインスタンスの生成元となるオブジェクト。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

WindowsIdentity(String)

指定した UPN (User Principal Name) で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。

C#
public WindowsIdentity (string sUserPrincipalName);

パラメーター

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) 属性 への読み取りアクセスが必要です。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

WindowsIdentity(IntPtr, String)

指定した Windows アカウント トークンと指定した認証の種類によって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。

C#
public WindowsIdentity (IntPtr userToken, string type);

パラメーター

userToken
IntPtr

コードが実行されている対象ユーザーのアカウント トークン。

type
String

(情報使用のみ。) ユーザーを識別するために使用される認証の種類。

例外

userToken が 0 です。

- または -

userToken は、複製され、偽装に対して無効になっています。

呼び出し元に、正しいアクセス許可がありません。

- または -

Win32 エラーが発生しました。

次のコードは、コンストラクターを WindowsIdentity 使用して、指定した Windows アカウント トークンと指定した認証の WindowsIdentity 種類で表されるユーザーの クラスの新しいインスタンスを作成する方法を示しています。 このコード例は、WindowsIdentity クラスのために提供されている大規模な例の一部です。

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

注釈

のインスタンスの初期プロパティ値を次の WindowsIdentity表に示します。

プロパティ 初期値
WindowsAccountType Normal
IsAuthenticated false

パラメーターの値は、 type パラメーターの設定 AuthenticationType に使用されます。 が のnull場合type、セキュリティ システムは Windows Vista 以降のバージョンの Windows オペレーティング システムでは に、以前のバージョンの Windows オペレーティング システムでは にKerberos設定AuthenticationTypeNegotiateされます。 セキュリティ システムでは、この値は使用されません。これは情報提供のみを目的としています。

注意

によって表される userToken トークンを取得するには、Windows API LogonUser 関数などのアンマネージ コードを呼び出します。 Windows API CloseHandle 関数を呼び出して、常にリリースuserTokenします。 アンマネージド コードの呼び出しの詳細については、「 アンマネージ DLL 関数の使用」を参照してください。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

WindowsIdentity(SerializationInfo, StreamingContext)

注意事項

This API supports obsolete formatter-based serialization. It should not be called or extended by application code.

SerializationInfo ストリーム内の情報で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。

C#
public WindowsIdentity (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
C#
[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);

パラメーター

info
SerializationInfo

ユーザーのアカウント情報を格納するオブジェクト。

context
StreamingContext

ストリーム特性を示すオブジェクト。

属性

例外

WindowsIdentity はプロセス間でシリアル化することはできません。

呼び出し元に、正しいアクセス許可がありません。

- または -

Win32 エラーが発生しました。

注釈

重要

信頼されていないデータを指定してこのメソッドを呼び出すことは、セキュリティ上のリスクが伴います。 このメソッドは信頼されたデータでのみ呼び出してください。 詳細については、「 すべての入力を検証する」を参照してください。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン (廃止)
.NET 6, 7 (8, 9)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

WindowsIdentity(String, String)

指定した UPN (User Principal Name) と指定した認証の種類で表されるユーザーを表す WindowsIdentity クラスの新しいインスタンスを初期化します。

C#
public WindowsIdentity (string sUserPrincipalName, string type);

パラメーター

sUserPrincipalName
String

コードが実行されている対象ユーザーの UPN。

type
String

(情報使用のみ。) ユーザーを識別するために使用される認証の種類。

例外

Windows は、Windows NT ステータス コード STATUS_ACCESS_DENIED を返しました。

使用できるメモリが不足しています。

呼び出し元に、正しいアクセス許可がありません。

- または -

コンピューターは Windows 2003 以降のドメインに接続されていません。

- または -

コンピューターは Windows 2003 以降を実行していません。

- または -

ユーザーは、コンピューターが接続されているドメインのメンバーではありません。

注釈

パラメーターの値は type 、 パラメーターの設定 AuthenticationType に使用されます。 が の場合type、セキュリティ システムは nullWindows 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) 属性 への読み取りアクセスが必要です。

適用対象

.NET Framework 4.8.1 およびその他のバージョン
製品 バージョン
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

WindowsIdentity(IntPtr, String, WindowsAccountType)

指定した Windows アカウント トークン、指定した認証の種類、および指定した Windows アカウントの種類によって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。

C#
public WindowsIdentity (IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType);

パラメーター

userToken
IntPtr

コードが実行されている対象ユーザーのアカウント トークン。

type
String

(情報使用のみ。) ユーザーを識別するために使用される認証の種類。

acctType
WindowsAccountType

列挙値の 1 つ。

例外

userToken が 0 です。

- または -

userToken は、複製され、偽装に対して無効になっています。

呼び出し元に、正しいアクセス許可がありません。

- または -

Win32 エラーが発生しました。

次のコードは、コンストラクターを WindowsIdentity 使用して、指定した Windows アカウント トークン、指定した認証の種類、および指定した Windows アカウントの WindowsIdentity 種類で表されるユーザーの クラスの新しいインスタンスを作成する方法を示しています。 このコード例は、WindowsIdentity クラスのために提供されている大規模な例の一部です。

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

注釈

のインスタンスの初期プロパティ値を次の WindowsIdentity表に示します。

プロパティ 初期値
IsAuthenticated false

パラメーターの値は type 、 パラメーターの設定 AuthenticationType に使用されます。 が の場合type、セキュリティ システムは nullWindows Vista 以降のバージョンの Windows オペレーティング システムでは に、以前のバージョンの Windows オペレーティング システムでは にKerberos設定AuthenticationTypeNegotiateされます。 セキュリティ システムでは、この値は使用されません。これは情報提供のみを目的としています。

注意

によって表される userToken トークンを取得するには、Windows API LogonUser 関数などのアンマネージ コードを呼び出します。 Windows API CloseHandle 関数を呼び出して、常に解放userTokenします。 アンマネージ コードの呼び出しの詳細については、「 アンマネージ DLL 関数の使用」を参照してください。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

WindowsIdentity(IntPtr, String, WindowsAccountType, Boolean)

指定した Windows アカウント トークン、指定した認証の種類、指定した Windows アカウントの種類、および指定した認証ステータスによって表されるユーザーを表す、WindowsIdentity クラスの新しいインスタンスを初期化します。

C#
public WindowsIdentity (IntPtr userToken, string type, System.Security.Principal.WindowsAccountType acctType, bool isAuthenticated);

パラメーター

userToken
IntPtr

コードが実行されている対象ユーザーのアカウント トークン。

type
String

(情報使用のみ。) ユーザーを識別するために使用される認証の種類。

acctType
WindowsAccountType

列挙値の 1 つ。

isAuthenticated
Boolean

ユーザーが認証されていることを示す場合は true。それ以外の場合は false

例外

userToken が 0 です。

- または -

userToken は、複製され、偽装に対して無効になっています。

呼び出し元に、正しいアクセス許可がありません。

- または -

Win32 エラーが発生しました。

次のコードは、コンストラクターを WindowsIdentity 使用して、指定した Windows アカウント トークン、指定した認証の種類、指定した Windows アカウントの WindowsIdentity 種類、および指定した認証状態で表されるユーザーの クラスの新しいインスタンスを作成する方法を示しています。 このコード例は、WindowsIdentity クラスのために提供されている大規模な例の一部です。

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

注釈

パラメーターの値は type 、 パラメーターの設定 AuthenticationType に使用されます。 が の場合type、セキュリティ システムは nullWindows Vista 以降のバージョンの Windows オペレーティング システムでは に、以前のバージョンの Windows オペレーティング システムでは にKerberos設定AuthenticationTypeNegotiateされます。 セキュリティ システムでは、この値は使用されません。これは情報提供のみを目的としています。

によって表される userToken トークンを取得するには、Windows API LogonUser 関数などのアンマネージ コードを呼び出します。 Windows API CloseHandle 関数を呼び出して、常に解放userTokenします。 アンマネージ コードの呼び出しの詳細については、「 アンマネージ DLL 関数の使用」を参照してください。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5