Win32 API 日本語リファレンス
ホームSecurity › SECURITY_IMPERSONATION_LEVEL

SECURITY_IMPERSONATION_LEVEL

列挙型
基底型i4

メンバー 4

名前10進16進説明
SecurityAnonymous00x0サーバープロセスは、クライアントに関する識別情報を取得できず、クライアントを偽装することもできません。値が指定されずに定義されているため、ANSI C の規則により既定で 0 になります。
SecurityIdentification10x1サーバープロセスは、セキュリティ識別子や 特権 など、クライアントに関する情報を取得できますが、クライアントを偽装することはできません。これは、独自のオブジェクトをエクスポートするサーバー、たとえばテーブルやビューをエクスポートするデータベース製品などで役立ちます。取得したクライアントのセキュリティ情報を使用することで、サーバーはクライアントの セキュリティコンテキスト を使用する他のサービスを利用することなく、アクセス検証の判断を行えます。
SecurityImpersonation20x2サーバープロセスは、ローカルシステム上でクライアントのセキュリティコンテキストを偽装できます。リモートシステム上でクライアントを偽装することはできません。
SecurityDelegation30x3サーバープロセスは、リモートシステム上でクライアントのセキュリティコンテキストを偽装できます。

公式ドキュメント

SECURITY_IMPERSONATION_LEVEL 列挙型には、セキュリティ偽装レベルを指定する値が含まれます。セキュリティ偽装レベルは、サーバープロセスがクライアント プロセス の代理としてどの程度動作できるかを制御します。

解説(Remarks)

偽装とは、あるプロセスが別のプロセスのセキュリティ属性を引き受ける機能のことです。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum SECURITY_IMPERSONATION_LEVEL : int {
    SecurityAnonymous = 0,
    SecurityIdentification = 1,
    SecurityImpersonation = 2,
    SecurityDelegation = 3
} SECURITY_IMPERSONATION_LEVEL;
public enum SECURITY_IMPERSONATION_LEVEL : int
{
    SecurityAnonymous = 0,
    SecurityIdentification = 1,
    SecurityImpersonation = 2,
    SecurityDelegation = 3,
}
Public Enum SECURITY_IMPERSONATION_LEVEL As Integer
    SecurityAnonymous = 0
    SecurityIdentification = 1
    SecurityImpersonation = 2
    SecurityDelegation = 3
End Enum
import enum

class SECURITY_IMPERSONATION_LEVEL(enum.IntEnum):
    SecurityAnonymous = 0
    SecurityIdentification = 1
    SecurityImpersonation = 2
    SecurityDelegation = 3
// SECURITY_IMPERSONATION_LEVEL
pub const SecurityAnonymous: i32 = 0;
pub const SecurityIdentification: i32 = 1;
pub const SecurityImpersonation: i32 = 2;
pub const SecurityDelegation: i32 = 3;
// SECURITY_IMPERSONATION_LEVEL
const (
	SecurityAnonymous int32 = 0
	SecurityIdentification int32 = 1
	SecurityImpersonation int32 = 2
	SecurityDelegation int32 = 3
)
const
  SecurityAnonymous = 0;
  SecurityIdentification = 1;
  SecurityImpersonation = 2;
  SecurityDelegation = 3;
// SECURITY_IMPERSONATION_LEVEL
pub const SecurityAnonymous: i32 = 0;
pub const SecurityIdentification: i32 = 1;
pub const SecurityImpersonation: i32 = 2;
pub const SecurityDelegation: i32 = 3;
const
  SecurityAnonymous* = 0
  SecurityIdentification* = 1
  SecurityImpersonation* = 2
  SecurityDelegation* = 3
enum SECURITY_IMPERSONATION_LEVEL : int {
    SecurityAnonymous = 0,
    SecurityIdentification = 1,
    SecurityImpersonation = 2,
    SecurityDelegation = 3,
}
#define global SecurityAnonymous      0x0
#define global SecurityIdentification 0x1
#define global SecurityImpersonation  0x2
#define global SecurityDelegation     0x3