CTokenPrivileges クラス
このクラスは、TOKEN_PRIVILEGES
構造体用のラッパーです。
重要
このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。
構文
class CTokenPrivileges
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CTokenPrivileges::CTokenPrivileges | コンストラクター。 |
CTokenPrivileges::~CTokenPrivileges | デストラクター。 |
パブリック メソッド
名前 | 説明 |
---|---|
CTokenPrivileges::Add | CTokenPrivileges オブジェクトに 1 つ以上の特権を追加します。 |
CTokenPrivileges::Delete | CTokenPrivileges オブジェクトから特権を削除します。 |
CTokenPrivileges::DeleteAll | CTokenPrivileges オブジェクトからすべての特権を削除します。 |
CTokenPrivileges::GetCount | CTokenPrivileges オブジェクト内の特権エントリの数を返します。 |
CTokenPrivileges::GetDisplayNames | CTokenPrivileges オブジェクトに含まれる特権の表示名を取得します。 |
CTokenPrivileges::GetLength | CTokenPrivileges オブジェクトによって表される TOKEN_PRIVILEGES 構造体を保持するために必要なバッファー サイズ (バイト単位) を返します。 |
CTokenPrivileges::GetLuidsAndAttributes | CTokenPrivileges オブジェクトからローカルで一意な識別子 (LUID) と属性フラグを取得します。 |
CTokenPrivileges::GetNamesAndAttributes | CTokenPrivileges オブジェクトから特権名と属性フラグを取得します。 |
CTokenPrivileges::GetPTOKEN_PRIVILEGES | TOKEN_PRIVILEGES 構造体を指すポインターを返します。 |
CTokenPrivileges::LookupPrivilege | 指定された特権名に関連付けられた属性を取得します。 |
パブリック演算子
名前 | 説明 |
---|---|
CTokenPrivileges::operator const TOKEN_PRIVILEGES * | TOKEN_PRIVILEGES 構造体を指すポインターに値をキャストします。 |
CTokenPrivileges::operator = | 代入演算子。 |
解説
アクセス トークンは、プロセスまたはスレッドのセキュリティ コンテキストを記述するオブジェクトであり、Windows システムにログオンしている各ユーザーに割り当てられます。
アクセス トークンは、各ユーザーに付与されるさまざまなセキュリティ特権を記述するために使用されます。 特権は、ローカルで一意な識別子 (LUID) と呼ばれる 64 ビットの数値と記述子文字列で構成されます。
CTokenPrivileges
クラスは、TOKEN_PRIVILEGES 構造体用のラッパーであり、0 個以上の特権が含まれます。 特権は、指定されたクラス メソッドを使用して追加、削除、または照会することができます。
Windows のアクセス制御モデルの概要については、Windows SDK のアクセス制御に関するページをご覧ください。
要件
ヘッダー: atlsecurity.h
CTokenPrivileges::Add
CTokenPrivileges
アクセス トークン オブジェクトに 1 つ以上の特権を追加します。
bool Add(LPCTSTR pszPrivilege, bool bEnable) throw(...);
void Add(const TOKEN_PRIVILEGES& rPrivileges) throw(...);
パラメーター
pszPrivilege
WINNT.H ヘッダーファイルで定義された、権限の名前を指定し、null で終わる文字列を指すポインター。
bEnable
true の場合、特権は有効です。 false の場合、特権は無効です。
rPrivileges
TOKEN_PRIVILEGES 構造体への参照。 特権と属性はこの構造体からコピーされ、CTokenPrivileges
オブジェクトに追加されます。
戻り値
このメソッドの最初の形式により、特権が正常に追加された場合は true、それ以外の場合は false が返されます。
CTokenPrivileges::CTokenPrivileges
コンストラクター。
CTokenPrivileges() throw();
CTokenPrivileges(const CTokenPrivileges& rhs) throw(... );
CTokenPrivileges(const TOKEN_PRIVILEGES& rPrivileges) throw(...);
パラメーター
rhs
新しいオブジェクトに割り当てる CTokenPrivileges
オブジェクト。
rPrivileges
新しい CTokenPrivileges
オブジェクトに割り当てる TOKEN_PRIVILEGES 構造体。
解説
CTokenPrivileges
オブジェクトは、必要に応じて、TOKEN_PRIVILEGES
構造体または以前に定義した CTokenPrivileges
オブジェクトを使用して作成できます。
CTokenPrivileges::~CTokenPrivileges
デストラクター。
virtual ~CTokenPrivileges() throw();
解説
デストラクターによって、割り当てられたすべてのリソースが解放されます。
CTokenPrivileges::Delete
CTokenPrivileges
アクセス トークン オブジェクトから特権を削除します。
bool Delete(LPCTSTR pszPrivilege) throw();
パラメーター
pszPrivilege
WINNT.H ヘッダーファイルで定義された、権限の名前を指定し、null で終わる文字列を指すポインター。 たとえば、このパラメーターを使用すると、定数 SE_SECURITY_NAME、またはそれに対応する文字列 "SeSecurityPrivilege" を指定できます。
戻り値
特権が正常に削除された場合は true を、それ以外の場合は false を返します。
解説
このメソッドは、制限付きトークンを作成するためのツールとして役立ちます。
CTokenPrivileges::DeleteAll
CTokenPrivileges
アクセス トークン オブジェクトからすべての特権を削除します。
void DeleteAll() throw();
解説
CTokenPrivileges
アクセス トークン オブジェクトに含まれるすべての特権を削除します。
CTokenPrivileges::GetDisplayNames
CTokenPrivileges
アクセス トークン オブジェクトに含まれる特権の表示名を取得します。
void GetDisplayNames(CNames* pDisplayNames) const throw(...);
パラメーター
pDisplayNames
CString
オブジェクトの配列へのポインター。 CNames
は、typedef (CTokenPrivileges::CAtlArray<CString>
) として定義されます。
解説
パラメーター pDisplayNames
は、CTokenPrivileges
オブジェクトに含まれる特権に対応する表示名を受け取る CString
オブジェクトの配列を指すポインターです。 このメソッドでは、WINNT.H の Defined Privileges セクションで指定された特権の表示名のみが取得されます。
このメソッドにより、表示名が取得されます。たとえば、属性名が SE_REMOTE_SHUTDOWN_NAME である場合、表示名は、"Force shutdown from a remote system" (リモート システムからの強制シャットダウン) になります。システム名を取得するには、CTokenPrivileges::GetNamesAndAttributes を使用します。
CTokenPrivileges::GetCount
CTokenPrivileges
オブジェクト内の特権エントリの数を返します。
UINT GetCount() const throw();
戻り値
CTokenPrivileges
オブジェクトに含まれる特権の数を返します。
CTokenPrivileges::GetLength
CTokenPrivileges
オブジェクトの長さを返します。
UINT GetLength() const throw();
戻り値
含まれているすべての特権エントリなど、CTokenPrivileges
オブジェクトによって表される TOKEN_PRIVILEGES
構造体を保持するために必要なバイト数を返します。
CTokenPrivileges::GetLuidsAndAttributes
CTokenPrivileges
オブジェクトからローカルで一意な識別子 (LUID) と属性フラグを取得します。
void GetLuidsAndAttributes(
CLUIDArray* pPrivileges,
CAttributes* pAttributes = NULL) const throw(...);
パラメーター
pPrivileges
LUID オブジェクトの配列を指すポインター。 CLUIDArray
は、CAtlArray<LUID> CLUIDArray
として定義される typedef です。
pAttributes
DWORD オブジェクトの配列を指すポインター。 このパラメーターを省略した場合、または NULL とした場合、属性は取得されません。 CAttributes
は、CAtlArray <DWORD> CAttributes
として定義される typedef です。
解説
このメソッドにより、CTokenPrivileges
アクセス トークン オブジェクトに含まれるすべての特権が列挙され、個々の LUID と (必要に応じて) 属性フラグが配列オブジェクトに配置されます。
CTokenPrivileges::GetNamesAndAttributes
CTokenPrivileges
オブジェクトから名前と属性フラグを取得します。
void GetNamesAndAttributes(
CNames* pNames,
CAttributes* pAttributes = NULL) const throw(...);
パラメーター
pNames
CString
オブジェクトの配列を指すポインター。 CNames
は、CAtlArray <CString> CNames
として定義される typedef です。
pAttributes
DWORD オブジェクトの配列を指すポインター。 このパラメーターを省略した場合、または NULL とした場合、属性は取得されません。 CAttributes
は、CAtlArray <DWORD> CAttributes
として定義される typedef です。
解説
このメソッドにより、CTokenPrivileges
オブジェクトに含まれるすべての特権が列挙され、名前と (必要に応じて) 属性フラグが配列オブジェクトに配置されます。
このメソッドでは、表示可能な名前ではなく属性名が取得されます。たとえば、属性名が SE_REMOTE_SHUTDOWN_NAME である場合、システム名は "SeRemoteShutdownPrivilege" になります。表示可能な名前を取得するには、メソッド CTokenPrivileges::GetDisplayNames を使用します。
CTokenPrivileges::GetPTOKEN_PRIVILEGES
TOKEN_PRIVILEGES
構造体を指すポインターを返します。
const TOKEN_PRIVILEGES* GetPTOKEN_PRIVILEGES() const throw(...);
戻り値
TOKEN_PRIVILEGES 構造体を指すポインターを返します。
CTokenPrivileges::LookupPrivilege
指定された特権名に関連付けられた属性を取得します。
bool LookupPrivilege(
LPCTSTR pszPrivilege,
DWORD* pdwAttributes = NULL) const throw(...);
パラメーター
pszPrivilege
WINNT.H ヘッダーファイルで定義された、権限の名前を指定し、null で終わる文字列を指すポインター。 たとえば、このパラメーターを使用すると、定数 SE_SECURITY_NAME、またはそれに対応する文字列 "SeSecurityPrivilege" を指定できます。
pdwAttributes
属性を受け取る変数を指すポインター。
戻り値
属性が正常に取得された場合は true、それ以外の場合は false を返します。
CTokenPrivileges::operator =
代入演算子。
CTokenPrivileges& operator= (const TOKEN_PRIVILEGES& rPrivileges) throw(...);
CTokenPrivileges& operator= (const CTokenPrivileges& rhs) throw(...);
パラメーター
rPrivileges
CTokenPrivileges
に割り当てる TOKEN_PRIVILEGES 構造体。
rhs
オブジェクトに割り当てる CTokenPrivileges
オブジェクト。
戻り値
更新された CTokenPrivileges
オブジェクトを返します。
CTokenPrivileges::operator const TOKEN_PRIVILEGES *
TOKEN_PRIVILEGES
構造体を指すポインターに値をキャストします。
operator const TOKEN_PRIVILEGES *() const throw(...);
解説
TOKEN_PRIVILEGES 構造体を指すポインターに値をキャストします。
関連項目
セキュリティ サンプル
TOKEN_PRIVILEGES
LUID
LUID_AND_ATTRIBUTES
クラスの概要
セキュリティに関するグローバル関数