CAccessToken クラスCAccessToken Class

このクラスは、アクセストークンのラッパーです。This class is a wrapper for an access token.

重要

このクラスとそのメンバーは、Windows ランタイムで実行されるアプリケーションでは使用できません。This class and its members cannot be used in applications that execute in the Windows Runtime.

構文Syntax

class CAccessToken

メンバーMembers

パブリック コンストラクターPublic Constructors

名前Name 説明Description
CAccessToken::~CAccessTokenCAccessToken::~CAccessToken デストラクターです。The destructor.

パブリック メソッドPublic Methods

名前Name 説明Description
CAccessToken::AttachCAccessToken::Attach このメソッドを呼び出して、指定されたアクセストークンハンドルの所有権を取得します。Call this method to take ownership of the given access token handle.
CAccessToken::CheckTokenMembershipCAccessToken::CheckTokenMembership 指定した SID がCAccessTokenオブジェクトで有効になっているかどうかを確認するには、このメソッドを呼び出します。Call this method to determine if a specified SID is enabled in the CAccessToken object.
CAccessToken::CreateImpersonationTokenCAccessToken::CreateImpersonationToken 新しい権限借用アクセストークンを作成するには、このメソッドを呼び出します。Call this method to create a new impersonation access token.
CAccessToken::CreatePrimaryTokenCAccessToken::CreatePrimaryToken 新しいプライマリトークンを作成するには、このメソッドを呼び出します。Call this method to create a new primary token.
CAccessToken::CreateProcessAsUserCAccessToken::CreateProcessAsUser CAccessTokenオブジェクトによって表されるユーザーのセキュリティコンテキストで実行される新しいプロセスを作成するには、このメソッドを呼び出します。Call this method to create a new process running in the security context of the user represented by the CAccessToken object.
CAccessToken::CreateRestrictedTokenCAccessToken::CreateRestrictedToken 新しい制限付きCAccessTokenオブジェクトを作成するには、このメソッドを呼び出します。Call this method to create a new, restricted CAccessToken object.
CAccessToken::DetachCAccessToken::Detach アクセストークンの所有権を取り消すには、このメソッドを呼び出します。Call this method to revoke ownership of the access token.
CAccessToken::DisablePrivilegeCAccessToken::DisablePrivilege CAccessTokenオブジェクトの特権を無効にするには、このメソッドを呼び出します。Call this method to disable a privilege in the CAccessToken object.
CAccessToken::DisablePrivilegesCAccessToken::DisablePrivileges このメソッドを呼び出して、 CAccessTokenオブジェクト内の1つ以上の特権を無効にします。Call this method to disable one or more privileges in the CAccessToken object.
CAccessToken::EnablePrivilegeCAccessToken::EnablePrivilege CAccessTokenオブジェクトの特権を有効にするには、このメソッドを呼び出します。Call this method to enable a privilege in the CAccessToken object.
CAccessToken::EnablePrivilegesCAccessToken::EnablePrivileges このメソッドを呼び出して、 CAccessTokenオブジェクト内の1つ以上の特権を有効にします。Call this method to enable one or more privileges in the CAccessToken object.
CAccessToken::GetDefaultDaclCAccessToken::GetDefaultDacl オブジェクトの既定の DACL をCAccessToken返すには、このメソッドを呼び出します。Call this method to return the CAccessToken object's default DACL.
CAccessToken::GetEffectiveTokenCAccessToken::GetEffectiveToken 現在のスレッドで有効にCAccessTokenなっているアクセストークンと等しいオブジェクトを取得するには、このメソッドを呼び出します。Call this method to get the CAccessToken object equal to the access token in effect for the current thread.
CAccessToken::GetGroupsCAccessToken::GetGroups オブジェクトのトークングループを返すCAccessTokenには、このメソッドを呼び出します。Call this method to return the CAccessToken object's token groups.
CAccessToken::GetHandleCAccessToken::GetHandle アクセストークンへのハンドルを取得するには、このメソッドを呼び出します。Call this method to retrieve a handle to the access token.
CAccessToken::GetImpersonationLevelCAccessToken::GetImpersonationLevel アクセストークンから偽装レベルを取得するには、このメソッドを呼び出します。Call this method to get the impersonation level from the access token.
CAccessToken::GetLogonSessionIdCAccessToken::GetLogonSessionId CAccessTokenオブジェクトに関連付けられているログオンセッション ID を取得するには、このメソッドを呼び出します。Call this method to get the Logon Session ID associated with the CAccessToken object.
CAccessToken::GetLogonSidCAccessToken::GetLogonSid このメソッドを呼び出して、 CAccessTokenオブジェクトに関連付けられているログオン SID を取得します。Call this method to get the Logon SID associated with the CAccessToken object.
CAccessToken::GetOwnerCAccessToken::GetOwner CAccessTokenオブジェクトに関連付けられている所有者を取得するには、このメソッドを呼び出します。Call this method to get the owner associated with the CAccessToken object.
CAccessToken::GetPrimaryGroupCAccessToken::GetPrimaryGroup CAccessTokenオブジェクトに関連付けられているプライマリグループを取得するには、このメソッドを呼び出します。Call this method to get the primary group associated with the CAccessToken object.
CAccessToken::GetPrivilegesCAccessToken::GetPrivileges CAccessTokenオブジェクトに関連付けられている特権を取得するには、このメソッドを呼び出します。Call this method to get the privileges associated with the CAccessToken object.
CAccessToken::GetProcessTokenCAccessToken::GetProcessToken 指定されたプロセスからアクセス トークンを使用して CAccessToken を初期化するには、このメソッドを呼び出します。Call this method to initialize the CAccessToken with the access token from the given process.
CAccessToken::GetProfileCAccessToken::GetProfile CAccessTokenオブジェクトに関連付けられているユーザープロファイルを指すハンドルを取得するには、このメソッドを呼び出します。Call this method to get the handle pointing to the user profile associated with the CAccessToken object.
CAccessToken::GetSourceCAccessToken::GetSource CAccessTokenオブジェクトのソースを取得するには、このメソッドを呼び出します。Call this method to get the source of the CAccessToken object.
CAccessToken::GetStatisticsCAccessToken::GetStatistics オブジェクトに関連付けられている情報CAccessTokenを取得するには、このメソッドを呼び出します。Call this method to get information associated with the CAccessToken object.
CAccessToken::GetTerminalServicesSessionIdCAccessToken::GetTerminalServicesSessionId CAccessTokenオブジェクトに関連付けられているターミナルサービスセッション ID を取得するには、このメソッドを呼び出します。Call this method to get the Terminal Services Session ID associated with the CAccessToken object.
CAccessToken::GetThreadTokenCAccessToken::GetThreadToken このメソッドを呼び出して、 CAccessToken指定したスレッドのトークンを使用してを初期化します。Call this method to initialize the CAccessToken with the token from the given thread.
CAccessToken::GetTokenIdCAccessToken::GetTokenId CAccessTokenオブジェクトに関連付けられているトークン ID を取得するには、このメソッドを呼び出します。Call this method to get the Token ID associated with the CAccessToken object.
CAccessToken::GetTypeCAccessToken::GetType CAccessTokenオブジェクトのトークン型を取得するには、このメソッドを呼び出します。Call this method to get the token type of the CAccessToken object.
CAccessToken::GetUserCAccessToken::GetUser CAccessTokenオブジェクトに関連付けられているユーザーを識別するには、このメソッドを呼び出します。Call this method to identify the user associated with the CAccessToken object.
CAccessToken::HKeyCurrentUserCAccessToken::HKeyCurrentUser CAccessTokenオブジェクトに関連付けられているユーザープロファイルを指すハンドルを取得するには、このメソッドを呼び出します。Call this method to get the handle pointing to the user profile associated with the CAccessToken object.
CAccessToken::ImpersonateCAccessToken::Impersonate 偽装CAccessTokenをスレッドに割り当てるには、このメソッドを呼び出します。Call this method to assign an impersonation CAccessToken to a thread.
CAccessToken::ImpersonateLoggedOnUserCAccessToken::ImpersonateLoggedOnUser 呼び出し元のスレッドが、ログオンしているユーザーのセキュリティコンテキストを偽装できるようにするには、このメソッドを呼び出します。Call this method to allow the calling thread to impersonate the security context of a logged-on user.
CAccessToken::IsTokenRestrictedCAccessToken::IsTokenRestricted オブジェクトに制限付き sid の一覧CAccessTokenが含まれているかどうかをテストするには、このメソッドを呼び出します。Call this method to test if the CAccessToken object contains a list of restricted SIDs.
CAccessToken::LoadUserProfileCAccessToken::LoadUserProfile CAccessTokenオブジェクトに関連付けられているユーザープロファイルを読み込むには、このメソッドを呼び出します。Call this method to load the user profile associated with the CAccessToken object.
CAccessToken::LogonUserCAccessToken::LogonUser 指定した資格情報に関連付けられているユーザーのログオンセッションを作成するには、このメソッドを呼び出します。Call this method to create a logon session for the user associated with the given credentials.
CAccessToken::OpenCOMClientTokenCAccessToken::OpenCOMClientToken クライアントからのCAccessToken呼び出しを処理する com サーバー内からこのメソッドを呼び出し、com クライアントからアクセストークンを使用してを初期化します。Call this method from within a COM server handling a call from a client to initialize the CAccessToken with the access token from the COM client.
CAccessToken::OpenNamedPipeClientTokenCAccessToken::OpenNamedPipeClientToken 名前付きパイプに対する要求を取得するサーバー内からこのメソッドを呼び出しCAccessTokenて、クライアントからアクセストークンを使用してを初期化します。Call this method from within a server taking requests over a named pipe to initialize the CAccessToken with the access token from the client.
CAccessToken::OpenRPCClientTokenCAccessToken::OpenRPCClientToken RPC クライアントからの呼び出しを処理するサーバー内からこのメソッドを呼び出して、 CAccessTokenクライアントからのアクセストークンを使用してを初期化します。Call this method from within a server handling a call from an RPC client to initialize the CAccessToken with the access token from the client.
CAccessToken::OpenThreadTokenCAccessToken::OpenThreadToken このメソッドを呼び出して、偽装レベルを設定し、 CAccessToken指定したスレッドのトークンを使用してを初期化します。Call this method to set the impersonation level and then initialize the CAccessToken with the token from the given thread.
CAccessToken::PrivilegeCheckCAccessToken::PrivilegeCheck オブジェクトで、 CAccessToken指定した権限のセットが有効になっているかどうかを確認するには、このメソッドを呼び出します。Call this method to determine whether a specified set of privileges are enabled in the CAccessToken object.
CAccessToken::RevertCAccessToken::Revert 偽装トークンを使用しているスレッドを停止するには、このメソッドを呼び出します。Call this method to stop a thread that is using an impersonation token.
CAccessToken::SetDefaultDaclCAccessToken::SetDefaultDacl CAccessTokenオブジェクトの既定の DACL を設定するには、このメソッドを呼び出します。Call this method to set the default DACL of the CAccessToken object.
CAccessToken::SetOwnerCAccessToken::SetOwner CAccessTokenオブジェクトの所有者を設定するには、このメソッドを呼び出します。Call this method to set the owner of the CAccessToken object.
CAccessToken::SetPrimaryGroupCAccessToken::SetPrimaryGroup CAccessTokenオブジェクトのプライマリグループを設定するには、このメソッドを呼び出します。Call this method to set the primary group of the CAccessToken object.

RemarksRemarks

アクセストークンは、プロセスまたはスレッドのセキュリティコンテキストを記述するオブジェクトで、Windows システムにログオンした各ユーザーに割り当てられます。An access token is an object that describes the security context of a process or thread and is allocated to each user logged onto a Windows system.

Windows のアクセス制御モデルの概要については、Windows SDK の「 Access Control 」を参照してください。For an introduction to the access control model in Windows, see Access Control in the Windows SDK.

必要条件Requirements

ヘッダー: atlsecurity .hHeader: atlsecurity.h

CAccessToken::AttachCAccessToken::Attach

このメソッドを呼び出して、指定されたアクセストークンハンドルの所有権を取得します。Call this method to take ownership of the given access token handle.

void Attach(HANDLE hToken) throw();

パラメーターParameters

hTokenhToken
アクセストークンへのハンドル。A handle to the access token.

RemarksRemarks

デバッグビルドでは、 CAccessTokenオブジェクトに既にアクセストークンの所有権がある場合、アサーションエラーが発生します。In debug builds, an assertion error will occur if the CAccessToken object already has ownership of an access token.

CAccessToken:: ~ CAccessTokenCAccessToken::~CAccessToken

デストラクターです。The destructor.

virtual ~CAccessToken() throw();

RemarksRemarks

割り当てられたすべてのリソースを解放します。Frees all allocated resources.

CAccessToken::CheckTokenMembershipCAccessToken::CheckTokenMembership

指定した SID がCAccessTokenオブジェクトで有効になっているかどうかを確認するには、このメソッドを呼び出します。Call this method to determine if a specified SID is enabled in the CAccessToken object.

bool CheckTokenMembership(
    const CSid& rSid,
    bool* pbIsMember) const throw(...);

パラメーターParameters

rSidrSid
CSid クラスオブジェクトへの参照。Reference to a CSid Class object.

pbIsMemberpbIsMember
チェックの結果を受け取る変数へのポインター。Pointer to a variable that receives the results of the check.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

メソッドCheckTokenMembershipは、アクセストークンのユーザーとグループの sid に sid が存在するかどうかを確認します。The CheckTokenMembership method checks for the presence of the SID in the user and group SIDs of the access token. SID が存在し、SE_GROUP_ENABLED 属性を持っている場合、 Pbismemberは TRUE に設定されます。それ以外の場合は、FALSE に設定されます。If the SID is present and has the SE_GROUP_ENABLED attribute, pbIsMember is set to TRUE; otherwise, it is set to FALSE.

デバッグビルドでは、 Pbismemberが有効なポインターでない場合にアサーションエラーが発生します。In debug builds, an assertion error will occur if pbIsMember is not a valid pointer.

注意

オブジェクトCAccessTokenは、プライマリトークンではなく、偽装トークンである必要があります。The CAccessToken object must be an impersonation token and not a primary token.

CAccessToken::CreateImpersonationTokenCAccessToken::CreateImpersonationToken

偽装アクセストークンを作成するには、このメソッドを呼び出します。Call this method to create an impersonation access token.

bool CreateImpersonationToken(
    CAccessToken* pImp,
    SECURITY_IMPERSONATION_LEVEL sil = SecurityImpersonation) const throw(...);

パラメーターParameters

pImppImp
新しいCAccessTokenオブジェクトへのポインター。Pointer to the new CAccessToken object.

silsil
新しいトークンの偽装レベルを提供するSECURITY_IMPERSONATION_LEVEL列挙型を指定します。Specifies a SECURITY_IMPERSONATION_LEVEL enumerated type that supplies the impersonation level of the new token.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

CreateImpersonationTokenDuplicateTokenを呼び出して、新しい権限借用トークンを作成します。CreateImpersonationToken calls DuplicateToken to create a new impersonation token.

CAccessToken::CreatePrimaryTokenCAccessToken::CreatePrimaryToken

新しいプライマリトークンを作成するには、このメソッドを呼び出します。Call this method to create a new primary token.

bool CreatePrimaryToken(
    CAccessToken* pPri,
    DWORD dwDesiredAccess = MAXIMUM_ALLOWED,
    const CSecurityAttributes* pTokenAttributes = NULL) const throw(...);

パラメーターParameters

pPripPri
新しいCAccessTokenオブジェクトへのポインター。Pointer to the new CAccessToken object.

dwDesiredAccessdwDesiredAccess
新しいトークンに要求されたアクセス権を指定します。Specifies the requested access rights for the new token. 既定では、MAXIMUM_ALLOWED は、呼び出し元に対して有効なすべてのアクセス権を要求します。The default, MAXIMUM_ALLOWED, requests all access rights that are valid for the caller. アクセス権の詳細については、「アクセス権とアクセスマスク」を参照してください。See Access Rights and Access Masks for more on access rights.

pTokenAttributespTokenAttributes
新しいトークンのセキュリティ記述子を指定し、子プロセスがトークンを継承できるかどうかを決定するSECURITY_ATTRIBUTES構造体へのポインター。Pointer to a SECURITY_ATTRIBUTES structure that specifies a security descriptor for the new token and determines whether child processes can inherit the token. Ptokenattributesが NULL の場合、トークンは既定のセキュリティ記述子を取得し、ハンドルを継承することはできません。If pTokenAttributes is NULL, the token gets a default security descriptor and the handle cannot be inherited.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

CreatePrimaryTokenDuplicateTokenExを呼び出して、新しいプライマリトークンを作成します。CreatePrimaryToken calls DuplicateTokenEx to create a new primary token.

CAccessToken::CreateProcessAsUserCAccessToken::CreateProcessAsUser

CAccessTokenオブジェクトによって表されるユーザーのセキュリティコンテキストで実行される新しいプロセスを作成するには、このメソッドを呼び出します。Call this method to create a new process running in the security context of the user represented by the CAccessToken object.

bool CreateProcessAsUser(
    LPCTSTR pApplicationName,
    LPTSTR pCommandLine,
    LPPROCESS_INFORMATION pProcessInformation,
    LPSTARTUPINFO pStartupInfo,
    DWORD dwCreationFlags = NORMAL_PRIORITY_CLASS,
    bool bLoadProfile = false,
    const CSecurityAttributes* pProcessAttributes = NULL,
    const CSecurityAttributes* pThreadAttributes = NULL,
    bool bInherit = false,
    LPCTSTR pCurrentDirectory = NULL) throw();

パラメーターParameters

pApplicationNamepApplicationName
実行するモジュールを指定する null で終わる文字列へのポインター。Pointer to a null-terminated string that specifies the module to execute. このパラメーターを NULL にすることはできません。This parameter may not be NULL.

pCommandLinepCommandLine
実行するコマンドラインを指定する null で終わる文字列へのポインター。Pointer to a null-terminated string that specifies the command line to execute.

pProcessInformationpProcessInformation
新しいプロセスに関する識別情報を受け取るPROCESS_INFORMATION 構造体へのポインター。Pointer to a PROCESS_INFORMATION structure that receives identification information about the new process.

pStartupInfopStartupInfo
新しいプロセスのメインウィンドウをどのように表示するかを指定するStartupinfo構造体へのポインター。Pointer to a STARTUPINFO structure that specifies how the main window for the new process should appear.

DwのフラグdwCreationFlags
優先度クラスとプロセスの作成を制御する追加のフラグを指定します。Specifies additional flags that control the priority class and the creation of the process. フラグの一覧については、「Win32 関数createprocessasuser が」を参照してください。See the Win32 function CreateProcessAsUser for a list of flags.

bLoadProfilebLoadProfile
TRUE の場合、ユーザーのプロファイルはprocessmodel.loaduserprofileで読み込まれます。If TRUE, the user's profile is loaded with LoadUserProfile.

pProcessAttributespProcessAttributes
新しいプロセスのセキュリティ記述子を指定し、返されたハンドルを子プロセスが継承できるかどうかを決定するSECURITY_ATTRIBUTES構造体へのポインター。Pointer to a SECURITY_ATTRIBUTES structure that specifies a security descriptor for the new process and determines whether child processes can inherit the returned handle. Pprocessattributesが NULL の場合、プロセスは既定のセキュリティ記述子を取得し、ハンドルを継承することはできません。If pProcessAttributes is NULL, the process gets a default security descriptor and the handle cannot be inherited.

pThreadAttributespThreadAttributes
新しいスレッドのセキュリティ記述子を指定し、返されたハンドルを子プロセスが継承できるかどうかを決定するSECURITY_ATTRIBUTES構造体へのポインター。Pointer to a SECURITY_ATTRIBUTES structure that specifies a security descriptor for the new thread and determines whether child processes can inherit the returned handle. Pthreadattributesが NULL の場合、スレッドは既定のセキュリティ記述子を取得し、ハンドルを継承することはできません。If pThreadAttributes is NULL, the thread gets a default security descriptor and the handle cannot be inherited.

bInheritbInherit
新しいプロセスが呼び出しプロセスからハンドルを継承するかどうかを示します。Indicates whether the new process inherits handles from the calling process. TRUE の場合、呼び出し元のプロセスで、継承可能な各開いているハンドルが新しいプロセスによって継承されます。If TRUE, each inheritable open handle in the calling process is inherited by the new process. 継承されたハンドルには、元のハンドルと同じ値とアクセス特権があります。Inherited handles have the same value and access privileges as the original handles.

pCurrentDirectorypCurrentDirectory
新しいプロセスの現在のドライブとディレクトリを指定する、null で終わる文字列へのポインター。Pointer to a null-terminated string that specifies the current drive and directory for the new process. 文字列は、ドライブ文字を含む完全なパスである必要があります。The string must be a full path that includes a drive letter. このパラメーターが NULL の場合、新しいプロセスは呼び出しプロセスと同じ現在のドライブとディレクトリを持ちます。If this parameter is NULL, the new process will have the same current drive and directory as the calling process.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

CreateProcessAsUserWin32 関数を使用しCAccessTokenて、オブジェクトによって表されるユーザーのセキュリティコンテキストで実行される新しいプロセスを作成します。 CreateProcessAsUserCreateProcessAsUser uses the CreateProcessAsUser Win32 function to create a new process that runs in the security context of the user represented by the CAccessToken object. 必要なパラメーターの詳細については、 createprocessasuser が関数の説明を参照してください。See the description of the CreateProcessAsUser function for a full discussion of the parameters required.

このメソッドを成功させるにCAccessTokenは、オブジェクトが割り当て primarytoken (制限付きトークンの場合を除く) と IncreaseQuota の特権を保持する必要があります。For this method to succeed, the CAccessToken object must hold AssignPrimaryToken (unless it is a restricted token) and IncreaseQuota privileges.

CAccessToken::CreateRestrictedTokenCAccessToken::CreateRestrictedToken

新しい制限付きCAccessTokenオブジェクトを作成するには、このメソッドを呼び出します。Call this method to create a new, restricted CAccessToken object.

bool CreateRestrictedToken(
    CAccessToken* pRestrictedToken,
    const CTokenGroups& SidsToDisable,
    const CTokenGroups& SidsToRestrict,
    const CTokenPrivileges& PrivilegesToDelete = CTokenPrivileges()) const throw(...);

パラメーターParameters

pRestrictedTokenpRestrictedToken
新しい制限付きCAccessTokenオブジェクト。The new, restricted CAccessToken object.

SidsToDisableSidsToDisable
拒否専用 sid を指定するオブジェクト。CTokenGroupsA CTokenGroups object that specifies the deny-only SIDs.

SidsToRestrictSidsToRestrict
制限する sid を指定するオブジェクト。CTokenGroupsA CTokenGroups object that specifies the restricting SIDs.

PrivilegesToDeletePrivilegesToDelete
制限付きトークン内で削除する特権を指定するオブジェクト。CTokenPrivilegesA CTokenPrivileges object that specifies the privileges to delete in the restricted token. 既定では、空のオブジェクトが作成されます。The default creates an empty object.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

CreateRestrictedTokenCreateRestrictedToken Win32 関数を使用して、制限CAccessToken付きの新しいオブジェクトを作成します。CreateRestrictedToken uses the CreateRestrictedToken Win32 function to create a new CAccessToken object, with restrictions.

重要

を使用CreateRestrictedTokenする場合は、既存のトークンが有効であり (ユーザーが入力したものではない)、 sidstodisablePrivilegesToDeleteの両方が有効である (ユーザーが入力していない) ことを確認します。When using CreateRestrictedToken, ensure the following: the existing token is valid (and not entered by the user) and SidsToDisable and PrivilegesToDelete are both valid (and not entered by the user). メソッドが FALSE を返す場合は、機能を拒否します。If the method returns FALSE, deny functionality.

CAccessToken::DetachCAccessToken::Detach

アクセストークンの所有権を取り消すには、このメソッドを呼び出します。Call this method to revoke ownership of the access token.

HANDLE Detach() throw();

戻り値Return Value

デタッチされたへCAccessTokenのハンドルを返します。Returns the handle to the CAccessToken which has been detached.

RemarksRemarks

このメソッドは、 CAccessTokenアクセストークンの所有権を取り消します。This method revokes the CAccessToken's ownership of the access token.

CAccessToken::DisablePrivilegeCAccessToken::DisablePrivilege

CAccessTokenオブジェクトの特権を無効にするには、このメソッドを呼び出します。Call this method to disable a privilege in the CAccessToken object.

bool DisablePrivilege(
    LPCTSTR pszPrivilege,
    CTokenPrivileges* pPreviousState = NULL) throw(...);

パラメーターParameters

pszPrivilegepszPrivilege
CAccessTokenオブジェクトで無効にする特権を格納している文字列へのポインター。Pointer to a string containing the privilege to disable in the CAccessToken object.

Pの状態pPreviousState
特権の以前CTokenPrivilegesの状態を格納するオブジェクトへのポインター。Pointer to a CTokenPrivileges object which will contain the previous state of the privileges.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::DisablePrivilegesCAccessToken::DisablePrivileges

このメソッドを呼び出して、 CAccessTokenオブジェクト内の1つ以上の特権を無効にします。Call this method to disable one or more privileges in the CAccessToken object.

bool DisablePrivileges(
    const CAtlArray<LPCTSTR>& rPrivileges,
    CTokenPrivileges* pPreviousState = NULL) throw(...);

パラメーターParameters

rPrivilegesrPrivileges
CAccessTokenオブジェクトで無効にする特権を格納している文字列の配列へのポインター。Pointer to an array of strings containing the privileges to disable in the CAccessToken object.

Pの状態pPreviousState
特権の以前CTokenPrivilegesの状態を格納するオブジェクトへのポインター。Pointer to a CTokenPrivileges object which will contain the previous state of the privileges.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::EnablePrivilegeCAccessToken::EnablePrivilege

CAccessTokenオブジェクトの特権を有効にするには、このメソッドを呼び出します。Call this method to enable a privilege in the CAccessToken object.

bool EnablePrivilege(
    LPCTSTR pszPrivilege,
    CTokenPrivileges* pPreviousState = NULL) throw(...);

パラメーターParameters

pszPrivilegepszPrivilege
CAccessTokenオブジェクトで有効にする特権を格納している文字列へのポインター。Pointer to a string containing the privilege to enable in the CAccessToken object.

Pの状態pPreviousState
特権の以前CTokenPrivilegesの状態を格納するオブジェクトへのポインター。Pointer to a CTokenPrivileges object which will contain the previous state of the privileges.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::EnablePrivilegesCAccessToken::EnablePrivileges

このメソッドを呼び出して、 CAccessTokenオブジェクト内の1つ以上の特権を有効にします。Call this method to enable one or more privileges in the CAccessToken object.

bool EnablePrivileges(
    const CAtlArray<LPCTSTR>& rPrivileges,
    CTokenPrivileges* pPreviousState = NULL) throw(...);

パラメーターParameters

rPrivilegesrPrivileges
CAccessTokenオブジェクトで有効にする特権を格納している文字列の配列へのポインター。Pointer to an array of strings containing the privileges to enable in the CAccessToken object.

Pの状態pPreviousState
特権の以前CTokenPrivilegesの状態を格納するオブジェクトへのポインター。Pointer to a CTokenPrivileges object which will contain the previous state of the privileges.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::GetDefaultDaclCAccessToken::GetDefaultDacl

オブジェクトの既定の DACL をCAccessToken返すには、このメソッドを呼び出します。Call this method to return the CAccessToken object's default DACL.

bool GetDefaultDacl(CDacl* pDacl) const throw(...);

パラメーターParameters

pDaclpDacl
CAccessTokenオブジェクトの既定の DACL を受け取るCDacl クラスオブジェクトへのポインター。Pointer to the CDacl Class object which will receive the CAccessToken object's default DACL.

戻り値Return Value

既定の DACL が回復されている場合は TRUE、それ以外の場合は FALSE を返します。Returns TRUE if the default DACL has been recovered, FALSE otherwise.

CAccessToken::GetEffectiveTokenCAccessToken::GetEffectiveToken

現在のスレッドで有効にCAccessTokenなっているアクセストークンと等しいオブジェクトを取得するには、このメソッドを呼び出します。Call this method to get the CAccessToken object equal to the access token in effect for the current thread.

bool GetEffectiveToken(DWORD dwDesiredAccess) throw();

パラメーターParameters

dwDesiredAccessdwDesiredAccess
アクセス トークンへの要求されたアクセス タイプを指定するアクセス マスクを指定します。Specifies an access mask that specifies the requested types of access to the access token. これらの要求されたアクセス タイプをトークンの DACL と比較することで、どのアクセスを許可するか、または拒否するかを判断します。These requested access types are compared with the token's DACL to determine which accesses are granted or denied.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::GetGroupsCAccessToken::GetGroups

オブジェクトのトークングループを返すCAccessTokenには、このメソッドを呼び出します。Call this method to return the CAccessToken object's token groups.

bool GetGroups(CTokenGroups* pGroups) const throw(...);

パラメーターParameters

pGroupspGroups
グループ情報を受け取るCtokengroups クラスオブジェクトへのポインター。Pointer to the CTokenGroups Class object which will receive the group information.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::GetHandleCAccessToken::GetHandle

アクセストークンへのハンドルを取得するには、このメソッドを呼び出します。Call this method to retrieve a handle to the access token.

HANDLE GetHandle() const throw();

戻り値Return Value

CAccessTokenオブジェクトのアクセストークンへのハンドルを返します。Returns a handle to the CAccessToken object's access token.

CAccessToken::GetImpersonationLevelCAccessToken::GetImpersonationLevel

アクセストークンから偽装レベルを取得するには、このメソッドを呼び出します。Call this method to get the impersonation level from the access token.

bool GetImpersonationLevel(
    SECURITY_IMPERSONATION_LEVEL* pImpersonationLevel) const throw(...);

パラメーターParameters

pImpersonationLevelpImpersonationLevel
偽装レベル情報を受け取るSECURITY_IMPERSONATION_LEVEL列挙型へのポインター。Pointer to a SECURITY_IMPERSONATION_LEVEL enumeration type which will receive the impersonation level information.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::GetLogonSessionIdCAccessToken::GetLogonSessionId

CAccessTokenオブジェクトに関連付けられているログオンセッション ID を取得するには、このメソッドを呼び出します。Call this method to get the Logon Session ID associated with the CAccessToken object.

bool GetLogonSessionId(LUID* pluid) const throw(...);

パラメーターParameters

pluidpluid
ログオンセッション ID を受け取るLUIDへのポインター。Pointer to a LUID which will receive the Logon Session ID.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

デバッグビルドでは、 pluidが無効な値の場合、アサーションエラーが発生します。In debug builds, an assertion error will occur if pluid is an invalid value.

CAccessToken::GetLogonSidCAccessToken::GetLogonSid

このメソッドを呼び出して、 CAccessTokenオブジェクトに関連付けられているログオン SID を取得します。Call this method to get the Logon SID associated with the CAccessToken object.

bool GetLogonSid(CSid* pSid) const throw(...);

パラメーターParameters

pSidpSid
CSid クラスオブジェクトへのポインター。Pointer to a CSid Class object.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

デバッグビルドでは、 pSidが無効な値の場合、アサーションエラーが発生します。In debug builds, an assertion error will occur if pSid is an invalid value.

CAccessToken::GetOwnerCAccessToken::GetOwner

CAccessTokenオブジェクトに関連付けられている所有者を取得するには、このメソッドを呼び出します。Call this method to get the owner associated with the CAccessToken object.

bool GetOwner(CSid* pSid) const throw(...);

パラメーターParameters

pSidpSid
CSid クラスオブジェクトへのポインター。Pointer to a CSid Class object.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

このアクセストークンが有効になっている間に作成されたオブジェクトには、既定で所有者が設定されます。The owner is set by default on any objects created while this access token is in effect.

CAccessToken::GetPrimaryGroupCAccessToken::GetPrimaryGroup

CAccessTokenオブジェクトに関連付けられているプライマリグループを取得するには、このメソッドを呼び出します。Call this method to get the primary group associated with the CAccessToken object.

bool GetPrimaryGroup(CSid* pSid) const throw(...);

パラメーターParameters

pSidpSid
CSid クラスオブジェクトへのポインター。Pointer to a CSid Class object.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

このアクセストークンが有効になっている間に作成されたオブジェクトには、グループが既定で設定されます。The group is set by default on any objects created while this access token is in effect.

CAccessToken::GetPrivilegesCAccessToken::GetPrivileges

CAccessTokenオブジェクトに関連付けられている特権を取得するには、このメソッドを呼び出します。Call this method to get the privileges associated with the CAccessToken object.

bool GetPrivileges(CTokenPrivileges* pPrivileges) const throw(...);

パラメーターParameters

pPrivilegespPrivileges
特権を受け取るCTokenPrivileges クラスオブジェクトへのポインター。Pointer to a CTokenPrivileges Class object which will receive the privileges.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::GetProcessTokenCAccessToken::GetProcessToken

指定されたプロセスからアクセス トークンを使用して CAccessToken を初期化するには、このメソッドを呼び出します。Call this method to initialize the CAccessToken with the access token from the given process.

bool GetProcessToken(DWORD dwDesiredAccess, HANDLE hProcess = NULL) throw();

パラメーターParameters

dwDesiredAccessdwDesiredAccess
アクセス トークンへの要求されたアクセス タイプを指定するアクセス マスクを指定します。Specifies an access mask that specifies the requested types of access to the access token. これらの要求されたアクセス タイプをトークンの DACL と比較することで、どのアクセスを許可するか、または拒否するかを判断します。These requested access types are compared with the token's DACL to determine which accesses are granted or denied.

hProcesshProcess
アクセス トークンが開いているプロセスへのハンドル。Handle to the process whose access token is opened. 既定値の NULL が使用されている場合は、現在のプロセスが使用されます。If the default value of NULL is used, the current process is used.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

OpenProcessToken Win32 関数を呼び出します。Calls the OpenProcessToken Win32 function.

CAccessToken::GetProfileCAccessToken::GetProfile

CAccessTokenオブジェクトに関連付けられているユーザープロファイルを指すハンドルを取得するには、このメソッドを呼び出します。Call this method to get the handle pointing to the user profile associated with the CAccessToken object.

HANDLE GetProfile() const throw();

戻り値Return Value

ユーザープロファイルを指すハンドルを返します。プロファイルが存在しない場合は NULL を返します。Returns a handle pointing to the user profile, or NULL if no profile exists.

CAccessToken::GetSourceCAccessToken::GetSource

CAccessTokenオブジェクトのソースを取得するには、このメソッドを呼び出します。Call this method to get the source of the CAccessToken object.

bool GetSource(TOKEN_SOURCE* pSource) const throw(...);

パラメーターParameters

pSourcepSource
TOKEN_SOURCE構造体へのポインター。Pointer to a TOKEN_SOURCE structure.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::GetStatisticsCAccessToken::GetStatistics

オブジェクトに関連付けられている情報CAccessTokenを取得するには、このメソッドを呼び出します。Call this method to get information associated with the CAccessToken object.

bool GetStatistics(TOKEN_STATISTICS* pStatistics) const throw(...);

パラメーターParameters

pStatisticspStatistics
TOKEN_STATISTICS構造体へのポインター。Pointer to a TOKEN_STATISTICS structure.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::GetTerminalServicesSessionIdCAccessToken::GetTerminalServicesSessionId

CAccessTokenオブジェクトに関連付けられているターミナルサービスセッション ID を取得するには、このメソッドを呼び出します。Call this method to get the Terminal Services Session ID associated with the CAccessToken object.

bool GetTerminalServicesSessionId(DWORD* pdwSessionId) const throw(...);

パラメーターParameters

pdwSessionIdpdwSessionId
ターミナルサービスのセッション ID。The Terminal Services Session ID.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::GetThreadTokenCAccessToken::GetThreadToken

このメソッドを呼び出して、 CAccessToken指定したスレッドのトークンを使用してを初期化します。Call this method to initialize the CAccessToken with the token from the given thread.

bool GetThreadToken(
    DWORD dwDesiredAccess,
    HANDLE hThread = NULL,
    bool bOpenAsSelf = true) throw();

パラメーターParameters

dwDesiredAccessdwDesiredAccess
アクセス トークンへの要求されたアクセス タイプを指定するアクセス マスクを指定します。Specifies an access mask that specifies the requested types of access to the access token. これらの要求されたアクセス タイプをトークンの DACL と比較することで、どのアクセスを許可するか、または拒否するかを判断します。These requested access types are compared with the token's DACL to determine which accesses are granted or denied.

hThreadhThread
アクセストークンが開かれているスレッドへのハンドル。Handle to the thread whose access token is opened.

bOpenAsSelfbOpenAsSelf
メソッドをGetThreadToken呼び出すスレッドのセキュリティコンテキスト、または呼び出し元のスレッドのプロセスのセキュリティコンテキストに対してアクセスチェックを行うかどうかを示します。Indicates whether the access check is to be made against the security context of the thread calling the GetThreadToken method or against the security context of the process for the calling thread.

このパラメーターが FALSE の場合は、呼び出し元のスレッドのセキュリティコンテキストを使用してアクセスチェックが実行されます。If this parameter is FALSE, the access check is performed using the security context for the calling thread. スレッドがクライアントを偽装している場合、このセキュリティコンテキストはクライアントプロセスのものである可能性があります。If the thread is impersonating a client, this security context can be that of a client process. このパラメーターが TRUE の場合、呼び出し元スレッドのプロセスのセキュリティコンテキストを使用してアクセスチェックが行われます。If this parameter is TRUE, the access check is made using the security context of the process for the calling thread.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::GetTokenIdCAccessToken::GetTokenId

CAccessTokenオブジェクトに関連付けられているトークン ID を取得するには、このメソッドを呼び出します。Call this method to get the Token ID associated with the CAccessToken object.

bool GetTokenId(LUID* pluid) const throw(...);

パラメーターParameters

pluidpluid
トークン ID を受け取るLUIDへのポインター。Pointer to a LUID which will receive the Token ID.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::GetTypeCAccessToken::GetType

CAccessTokenオブジェクトのトークン型を取得するには、このメソッドを呼び出します。Call this method to get the token type of the CAccessToken object.

bool GetType(TOKEN_TYPE* pType) const throw(...);

パラメーターParameters

pTypepType
成功した場合は、トークンの型を受け取るTOKEN_TYPE変数のアドレス。Address of the TOKEN_TYPE variable that, on success, receives the type of the token.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

TOKEN_TYPE 列挙型には、プライマリトークンと偽装トークンを区別する値が含まれています。The TOKEN_TYPE enumeration type contains values that differentiate between a primary token and an impersonation token.

CAccessToken::GetUserCAccessToken::GetUser

CAccessTokenオブジェクトに関連付けられているユーザーを識別するには、このメソッドを呼び出します。Call this method to identify the user associated with the CAccessToken object.

bool GetUser(CSid* pSid) const throw(...);

パラメーターParameters

pSidpSid
CSid クラスオブジェクトへのポインター。Pointer to a CSid Class object.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

CAccessToken::HKeyCurrentUserCAccessToken::HKeyCurrentUser

CAccessTokenオブジェクトに関連付けられているユーザープロファイルを指すハンドルを取得するには、このメソッドを呼び出します。Call this method to get the handle pointing to the user profile associated with the CAccessToken object.

HKEY HKeyCurrentUser() const throw();

戻り値Return Value

ユーザープロファイルを指すハンドルを返します。プロファイルが存在しない場合は NULL を返します。Returns a handle pointing to the user profile, or NULL if no profile exists.

CAccessToken::ImpersonateCAccessToken::Impersonate

偽装CAccessTokenをスレッドに割り当てるには、このメソッドを呼び出します。Call this method to assign an impersonation CAccessToken to a thread.

bool Impersonate(HANDLE hThread = NULL) const throw(...);

パラメーターParameters

hThreadhThread
偽装トークンを割り当てるスレッドへのハンドル。Handle to the thread to assign the impersonation token to. このハンドルは、TOKEN_IMPERSONATE アクセス権で開かれている必要があります。This handle must have been opened with TOKEN_IMPERSONATE access rights. Hthreadが NULL の場合、メソッドは偽装トークンを使用してスレッドを停止します。If hThread is NULL, the method causes the thread to stop using an impersonation token.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

デバッグビルドでは、にトークンへの有効CAccessTokenなポインターがない場合、アサーションエラーが発生します。In debug builds, an assertion error will occur if CAccessToken does not have a valid pointer to a token.

CAutoRevertImpersonation クラスを使用すると、偽装されたアクセストークンを自動的に元に戻すことができます。The CAutoRevertImpersonation class can be used to automatically revert impersonated access tokens.

CAccessToken::ImpersonateLoggedOnUserCAccessToken::ImpersonateLoggedOnUser

呼び出し元のスレッドが、ログオンしているユーザーのセキュリティコンテキストを偽装できるようにするには、このメソッドを呼び出します。Call this method to allow the calling thread to impersonate the security context of a logged-on user.

bool ImpersonateLoggedOnUser() const throw(...);

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

重要

何らかの理由で権限借用関数の呼び出しが失敗した場合、クライアントは偽装されず、クライアント要求は呼び出し元のプロセスのセキュリティコンテキストで行われます。If a call to an impersonation function fails for any reason, the client is not impersonated and the client request is made in the security context of the process from which the call was made. プロセスが高い特権を持つアカウントとして実行されている場合、または管理グループのメンバーとして実行されている場合、ユーザーは、許可されていないアクションを実行できる可能性があります。If the process is running as a highly privileged account, or as a member of an administrative group, the user might be able to perform actions he or she would otherwise be disallowed. したがって、この関数の戻り値は常に確認する必要があります。Therefore, the return value for this function should always be confirmed.

CAccessToken::IsTokenRestrictedCAccessToken::IsTokenRestricted

オブジェクトに制限付き sid の一覧CAccessTokenが含まれているかどうかをテストするには、このメソッドを呼び出します。Call this method to test if the CAccessToken object contains a list of restricted SIDs.

bool IsTokenRestricted() const throw();

戻り値Return Value

オブジェクトに Sid 制限の一覧が含まれている場合は TRUE、制限する Sid がない場合、またはメソッドが失敗した場合は FALSE を返します。Returns TRUE if the object contains a list of restricting SIDs, FALSE if there are no restricting SIDs or if the method fails.

CAccessToken::LoadUserProfileCAccessToken::LoadUserProfile

CAccessTokenオブジェクトに関連付けられているユーザープロファイルを読み込むには、このメソッドを呼び出します。Call this method to load the user profile associated with the CAccessToken object.

bool LoadUserProfile() throw(...);

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

デバッグビルドでは、 CAccessTokenに有効なトークンが含まれていない場合、またはユーザープロファイルが既に存在する場合、アサーションエラーが発生します。In debug builds, an assertion error will occur if the CAccessToken does not contain a valid token, or if a user profile already exists.

CAccessToken::LogonUserCAccessToken::LogonUser

指定した資格情報に関連付けられているユーザーのログオンセッションを作成するには、このメソッドを呼び出します。Call this method to create a logon session for the user associated with the given credentials.

bool LogonUser(
    LPCTSTR pszUserName,
    LPCTSTR pszDomain,
    LPCTSTR pszPassword,
    DWORD dwLogonType = LOGON32_LOGON_INTERACTIVE,
    DWORD dwLogonProvider = LOGON32_PROVIDER_DEFAULT) throw();

パラメーターParameters

pszUserNamepszUserName
ユーザー名を指定する null で終わる文字列へのポインター。Pointer to a null-terminated string that specifies the user name. これは、ログオン先のユーザーアカウントの名前です。This is the name of the user account to log on to.

pszDomainpszDomain
アカウントデータベースにPszusernameアカウントが含まれているドメインまたはサーバーの名前を指定する null で終わる文字列へのポインター。Pointer to a null-terminated string that specifies the name of the domain or server whose account database contains the pszUserName account.

pszPasswordpszPassword
Pszusernameによって指定されたユーザーアカウントのクリアテキストパスワードを指定する、null で終わる文字列へのポインター。Pointer to a null-terminated string that specifies the clear-text password for the user account specified by pszUserName.

dwLogonTypedwLogonType
実行するログオン操作の種類を指定します。Specifies the type of logon operation to perform. 詳細については、「 LogonUser 」を参照してください。See LogonUser for more details.

dwLogonProviderdwLogonProvider
ログオンプロバイダーを指定します。Specifies the logon provider. 詳細については、「 LogonUser 」を参照してください。See LogonUser for more details.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

ログオンによって生成されるアクセストークンは、 CAccessTokenに関連付けられます。The access token resulting from the logon will be associated with the CAccessToken. このメソッドを成功させるにCAccessTokenは、オブジェクトは SE_TCB_NAME 特権を保持し、信頼されたコンピューターベースの一部として所有者を識別する必要があります。For this method to succeed, the CAccessToken object must hold SE_TCB_NAME privileges, identifying the holder as part of the trusted computer base. 必要な特権に関する詳細については、「 LogonUser 」を参照してください。See LogonUser for more information regarding the privileges required.

CAccessToken::OpenCOMClientTokenCAccessToken::OpenCOMClientToken

クライアントからのCAccessToken呼び出しを処理する com サーバー内からこのメソッドを呼び出し、com クライアントからアクセストークンを使用してを初期化します。Call this method from within a COM server handling a call from a client to initialize the CAccessToken with the access token from the COM client.

bool OpenCOMClientToken(
    DWORD dwDesiredAccess,
    bool bImpersonate = false,
    bool bOpenAsSelf = true) throw(...);

パラメーターParameters

dwDesiredAccessdwDesiredAccess
アクセス トークンへの要求されたアクセス タイプを指定するアクセス マスクを指定します。Specifies an access mask that specifies the requested types of access to the access token. これらの要求されたアクセス タイプをトークンの DACL と比較することで、どのアクセスを許可するか、または拒否するかを判断します。These requested access types are compared with the token's DACL to determine which accesses are granted or denied.

bImpersonatebImpersonate
TRUE の場合、この呼び出しが正常に完了した場合、現在のスレッドは呼び出し元の COM クライアントを偽装します。If TRUE, the current thread will impersonate the calling COM client if this call completes successfully. FALSE の場合、アクセストークンは開かれますが、この呼び出しが完了してもスレッドは偽装トークンを持ちません。If FALSE, the access token will be opened, but the thread will not have an impersonation token when this call completes.

bOpenAsSelfbOpenAsSelf
GetThreadTokenメソッドを呼び出すスレッドのセキュリティコンテキスト、または呼び出し元のスレッドのプロセスのセキュリティコンテキストに対してアクセスチェックを実行するかどうかを示します。Indicates whether the access check is to be made against the security context of the thread calling the GetThreadToken method or against the security context of the process for the calling thread.

このパラメーターが FALSE の場合は、呼び出し元のスレッドのセキュリティコンテキストを使用してアクセスチェックが実行されます。If this parameter is FALSE, the access check is performed using the security context for the calling thread. スレッドがクライアントを偽装している場合、このセキュリティコンテキストはクライアントプロセスのものである可能性があります。If the thread is impersonating a client, this security context can be that of a client process. このパラメーターが TRUE の場合、呼び出し元スレッドのプロセスのセキュリティコンテキストを使用してアクセスチェックが行われます。If this parameter is TRUE, the access check is made using the security context of the process for the calling thread.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

CAutoRevertImpersonation クラスを使用すると、 BIMPERSONATEフラグを TRUE に設定することによって作成された偽装アクセストークンを自動的に元に戻すことができます。The CAutoRevertImpersonation Class can be used to automatically revert impersonated access tokens created by setting the bImpersonate flag to TRUE.

CAccessToken::OpenNamedPipeClientTokenCAccessToken::OpenNamedPipeClientToken

名前付きパイプに対する要求を取得するサーバー内からこのメソッドを呼び出しCAccessTokenて、クライアントからアクセストークンを使用してを初期化します。Call this method from within a server taking requests over a named pipe to initialize the CAccessToken with the access token from the client.

bool OpenNamedPipeClientToken(
    HANDLE hPipe,
    DWORD dwDesiredAccess,
    bool bImpersonate = false,
    bool bOpenAsSelf = true) throw(...);

パラメーターParameters

hPipehPipe
名前付きパイプへのハンドル。Handle to a named pipe.

dwDesiredAccessdwDesiredAccess
アクセス トークンへの要求されたアクセス タイプを指定するアクセス マスクを指定します。Specifies an access mask that specifies the requested types of access to the access token. これらの要求されたアクセス タイプをトークンの DACL と比較することで、どのアクセスを許可するか、または拒否するかを判断します。These requested access types are compared with the token's DACL to determine which accesses are granted or denied.

bImpersonatebImpersonate
TRUE の場合、この呼び出しが正常に完了した場合、現在のスレッドは呼び出し元のパイプクライアントを偽装します。If TRUE, the current thread will impersonate the calling pipe client if this call completes successfully. FALSE の場合、アクセストークンは開かれますが、この呼び出しが完了してもスレッドは偽装トークンを持ちません。If FALSE, the access token will be opened, but the thread will not have an impersonation token when this call completes.

bOpenAsSelfbOpenAsSelf
GetThreadTokenメソッドを呼び出すスレッドのセキュリティコンテキスト、または呼び出し元のスレッドのプロセスのセキュリティコンテキストに対してアクセスチェックを実行するかどうかを示します。Indicates whether the access check is to be made against the security context of the thread calling the GetThreadToken method or against the security context of the process for the calling thread.

このパラメーターが FALSE の場合は、呼び出し元のスレッドのセキュリティコンテキストを使用してアクセスチェックが実行されます。If this parameter is FALSE, the access check is performed using the security context for the calling thread. スレッドがクライアントを偽装している場合、このセキュリティコンテキストはクライアントプロセスのものである可能性があります。If the thread is impersonating a client, this security context can be that of a client process. このパラメーターが TRUE の場合、呼び出し元スレッドのプロセスのセキュリティコンテキストを使用してアクセスチェックが行われます。If this parameter is TRUE, the access check is made using the security context of the process for the calling thread.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

CAutoRevertImpersonation クラスを使用すると、 BIMPERSONATEフラグを TRUE に設定することによって作成された偽装アクセストークンを自動的に元に戻すことができます。The CAutoRevertImpersonation Class can be used to automatically revert impersonated access tokens created by setting the bImpersonate flag to TRUE.

CAccessToken::OpenRPCClientTokenCAccessToken::OpenRPCClientToken

RPC クライアントからの呼び出しを処理するサーバー内からこのメソッドを呼び出して、 CAccessTokenクライアントからのアクセストークンを使用してを初期化します。Call this method from within a server handling a call from an RPC client to initialize the CAccessToken with the access token from the client.

bool OpenRPCClientToken(
    RPC_BINDING_HANDLE BindingHandle,
    DWORD dwDesiredAccess,
    bool bImpersonate = false,
    bool bOpenAsSelf = true) throw(...);

パラメーターParameters

BindingHandleBindingHandle
クライアントへのバインドを表すサーバー上のバインドハンドル。Binding handle on the server that represents a binding to a client.

dwDesiredAccessdwDesiredAccess
アクセス トークンへの要求されたアクセス タイプを指定するアクセス マスクを指定します。Specifies an access mask that specifies the requested types of access to the access token. これらの要求されたアクセス タイプをトークンの DACL と比較することで、どのアクセスを許可するか、または拒否するかを判断します。These requested access types are compared with the token's DACL to determine which accesses are granted or denied.

bImpersonatebImpersonate
TRUE の場合、この呼び出しが正常に完了した場合、現在のスレッドは呼び出し元の RPC クライアントを偽装します。If TRUE, the current thread will impersonate the calling RPC client if this call completes successfully. FALSE の場合、アクセストークンは開かれますが、この呼び出しが完了してもスレッドは偽装トークンを持ちません。If FALSE, the access token will be opened, but the thread will not have an impersonation token when this call completes.

bOpenAsSelfbOpenAsSelf
GetThreadTokenメソッドを呼び出すスレッドのセキュリティコンテキスト、または呼び出し元のスレッドのプロセスのセキュリティコンテキストに対してアクセスチェックを実行するかどうかを示します。Indicates whether the access check is to be made against the security context of the thread calling the GetThreadToken method or against the security context of the process for the calling thread.

このパラメーターが FALSE の場合は、呼び出し元のスレッドのセキュリティコンテキストを使用してアクセスチェックが実行されます。If this parameter is FALSE, the access check is performed using the security context for the calling thread. スレッドがクライアントを偽装している場合、このセキュリティコンテキストはクライアントプロセスのものである可能性があります。If the thread is impersonating a client, this security context can be that of a client process. このパラメーターが TRUE の場合、呼び出し元スレッドのプロセスのセキュリティコンテキストを使用してアクセスチェックが行われます。If this parameter is TRUE, the access check is made using the security context of the process for the calling thread.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

CAutoRevertImpersonation クラスを使用すると、 BIMPERSONATEフラグを TRUE に設定することによって作成された偽装アクセストークンを自動的に元に戻すことができます。The CAutoRevertImpersonation Class can be used to automatically revert impersonated access tokens created by setting the bImpersonate flag to TRUE.

CAccessToken::OpenThreadTokenCAccessToken::OpenThreadToken

このメソッドを呼び出して、偽装レベルを設定し、 CAccessToken指定したスレッドのトークンを使用してを初期化します。Call this method to set the impersonation level and then initialize the CAccessToken with the token from the given thread.

bool OpenThreadToken(
    DWORD dwDesiredAccess,
    bool bImpersonate = false,
    bool bOpenAsSelf = true,
    SECURITY_IMPERSONATION_LEVEL sil = SecurityImpersonation) throw(...);

パラメーターParameters

dwDesiredAccessdwDesiredAccess
アクセス トークンへの要求されたアクセス タイプを指定するアクセス マスクを指定します。Specifies an access mask that specifies the requested types of access to the access token. これらの要求されたアクセス タイプをトークンの DACL と比較することで、どのアクセスを許可するか、または拒否するかを判断します。These requested access types are compared with the token's DACL to determine which accesses are granted or denied.

bImpersonatebImpersonate
TRUE の場合、このメソッドが完了すると、スレッドは要求された偽装レベルのままになります。If TRUE, the thread will be left at the requested impersonation level after this method completes. FALSE の場合、スレッドは元の偽装レベルに戻ります。If FALSE, the thread will revert to its original impersonation level.

bOpenAsSelfbOpenAsSelf
GetThreadTokenメソッドを呼び出すスレッドのセキュリティコンテキスト、または呼び出し元のスレッドのプロセスのセキュリティコンテキストに対してアクセスチェックを実行するかどうかを示します。Indicates whether the access check is to be made against the security context of the thread calling the GetThreadToken method or against the security context of the process for the calling thread.

このパラメーターが FALSE の場合は、呼び出し元のスレッドのセキュリティコンテキストを使用してアクセスチェックが実行されます。If this parameter is FALSE, the access check is performed using the security context for the calling thread. スレッドがクライアントを偽装している場合、このセキュリティコンテキストはクライアントプロセスのものである可能性があります。If the thread is impersonating a client, this security context can be that of a client process. このパラメーターが TRUE の場合、呼び出し元スレッドのプロセスのセキュリティコンテキストを使用してアクセスチェックが行われます。If this parameter is TRUE, the access check is made using the security context of the process for the calling thread.

silsil
トークンの偽装レベルを提供するSECURITY_IMPERSONATION_LEVEL列挙型を指定します。Specifies a SECURITY_IMPERSONATION_LEVEL enumerated type that supplies the impersonation level of the token.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

OpenThreadTokenCAccessToken:: GetThreadTokenに似ていますが、 CAccessTokenスレッドのアクセストークンからを初期化する前に偽装レベルを設定します。OpenThreadToken is similar to CAccessToken::GetThreadToken, but sets the impersonation level before initializing the CAccessToken from the thread's access token.

CAutoRevertImpersonation クラスを使用すると、 BIMPERSONATEフラグを TRUE に設定することによって作成された偽装アクセストークンを自動的に元に戻すことができます。The CAutoRevertImpersonation Class can be used to automatically revert impersonated access tokens created by setting the bImpersonate flag to TRUE.

CAccessToken::PrivilegeCheckCAccessToken::PrivilegeCheck

オブジェクトで、 CAccessToken指定した権限のセットが有効になっているかどうかを確認するには、このメソッドを呼び出します。Call this method to determine whether a specified set of privileges are enabled in the CAccessToken object.

bool PrivilegeCheck(
    PPRIVILEGE_SET RequiredPrivileges,
    bool* pbResult) const throw();

パラメーターParameters

RequiredPrivilegesRequiredPrivileges
PRIVILEGE_SET構造体へのポインター。Pointer to a PRIVILEGE_SET structure.

pbResultpbResult
指定された特権のいずれかまたはすべてがCAccessTokenオブジェクトで有効になっているかどうかを示すために、メソッドが設定する値へのポインター。Pointer to a value the method sets to indicate whether any or all of the specified privilege are enabled in the CAccessToken object.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

PrivilegeCheckを返したAttributes場合、対応する特権が有効になっている場合、各LUID_AND_ATTRIBUTES構造体のメンバーは SE_PRIVILEGE_USED_FOR_ACCESS に設定されます。When PrivilegeCheck returns, the Attributes member of each LUID_AND_ATTRIBUTES structure is set to SE_PRIVILEGE_USED_FOR_ACCESS if the corresponding privilege is enabled. このメソッドは、 PrivilegeCheck Win32 関数を呼び出します。This method calls the PrivilegeCheck Win32 function.

CAccessToken::RevertCAccessToken::Revert

スレッドが偽装トークンを使用しないようにするには、このメソッドを呼び出します。Call this method to stop a thread from using an impersonation token.

bool Revert(HANDLE hThread = NULL) const throw();

パラメーターParameters

hThreadhThread
偽装から復帰するスレッドへのハンドル。Handle to the thread to revert from impersonation. Hthreadが NULL の場合、現在のスレッドが想定されます。If hThread is NULL, the current thread is assumed.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

偽装トークンの再設定は、 CAutoRevertImpersonation クラスを使用して自動的に実行できます。The reversion of impersonation tokens can be performed automatically with the CAutoRevertImpersonation Class.

CAccessToken::SetDefaultDaclCAccessToken::SetDefaultDacl

CAccessTokenオブジェクトの既定の DACL を設定するには、このメソッドを呼び出します。Call this method to set the default DACL of the CAccessToken object.

bool SetDefaultDacl(const CDacl& rDacl) throw(...);

パラメーターParameters

rDaclrDacl
新しい既定のCDacl クラス情報。The new default CDacl Class information.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

既定の DACL は、このアクセストークンを有効にして新しいオブジェクトを作成するときに既定で使用される DACL です。The default DACL is the DACL that is used by default when new objects are created with this access token in effect.

CAccessToken::SetOwnerCAccessToken::SetOwner

CAccessTokenオブジェクトの所有者を設定するには、このメソッドを呼び出します。Call this method to set the owner of the CAccessToken object.

bool SetOwner(const CSid& rSid) throw(...);

パラメーターParameters

rSidrSid
所有者情報を格納しているCSid クラスオブジェクト。The CSid Class object containing the owner information.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

所有者は、このアクセストークンが有効になっている間に作成された新しいオブジェクトに使用される既定の所有者です。The owner is the default owner that is used for new objects created while this access token is in effect.

CAccessToken::SetPrimaryGroupCAccessToken::SetPrimaryGroup

CAccessTokenオブジェクトのプライマリグループを設定するには、このメソッドを呼び出します。Call this method to set the primary group of the CAccessToken object.

bool SetPrimaryGroup(const CSid& rSid) throw(...);

パラメーターParameters

rSidrSid
プライマリグループ情報を格納しているCSid クラスオブジェクト。The CSid Class object containing the primary group information.

戻り値Return Value

成功した場合は TRUE、失敗した場合は FALSE を返します。Returns TRUE on success, FALSE on failure.

RemarksRemarks

プライマリグループは、このアクセストークンが有効になっている間に作成された新しいオブジェクトの既定のグループです。The primary group is the default group for new objects created while this access token is in effect.

関連項目See also

ATLSecurity サンプルATLSecurity Sample
アクセストークンAccess Tokens
クラスの概要Class Overview