CSid
クラス
このクラスは、SID
(セキュリティ識別子) 構造体のラッパーです。
重要
このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。
構文
class CSid;
メンバー
パブリック typedef
名前 | 説明 |
---|---|
CSid::CSidArray |
CSid オブジェクトの配列。 |
パブリック コンストラクター
名前 | 説明 |
---|---|
CSid::CSid |
コンストラクター。 |
CSid::~CSid |
デストラクター。 |
パブリック メソッド
名前 | 説明 |
---|---|
CSid::AccountName |
CSid オブジェクトに関連付けられているアカウントの名前を返します。 |
CSid::Domain |
CSid オブジェクトに関連付けられているドメインの名前を返します。 |
CSid::EqualPrefix |
SID (セキュリティ識別子) プレフィックスが等しいかどうかをテストします。 |
CSid::GetLength |
CSid オブジェクトの長さを返します。 |
CSid::GetPSID |
SID 構造体へのポインターを返します。 |
CSid::GetPSID_IDENTIFIER_AUTHORITY |
SID_IDENTIFIER_AUTHORITY 構造体を指すポインターを返します。 |
CSid::GetSubAuthority |
SID 構造体の指定されたサブ認証を返します。 |
CSid::GetSubAuthorityCount |
サブ認証の数を返します。 |
CSid::IsValid |
CSid オブジェクトの有効性をテストします。 |
CSid::LoadAccount |
指定されたアカウント名とドメイン、または既存の SID 構造体で、CSid オブジェクトを更新します。 |
CSid::Sid |
ID 文字列を返します。 |
CSid::SidNameUse |
CSid オブジェクトの状態の説明を返します。 |
演算子
名前 | 説明 |
---|---|
CSid::operator = |
代入演算子。 |
CSid::operator const SID * |
CSid オブジェクトを、SID 構造体を指すポインターにキャストします。 |
グローバル演算子
名前 | 説明 |
---|---|
operator == |
2 つのセキュリティ記述子オブジェクトが等しいかどうかをテストします |
operator != |
2 つのセキュリティ記述子オブジェクトが等しくないかどうかをテストします |
operator < |
2 つのセキュリティ記述子オブジェクトの相対値を比較します。 |
operator > |
2 つのセキュリティ記述子オブジェクトの相対値を比較します。 |
operator <= |
2 つのセキュリティ記述子オブジェクトの相対値を比較します。 |
operator >= |
2 つのセキュリティ記述子オブジェクトの相対値を比較します。 |
解説
SID
構造は、ユーザーまたはグループを一意に識別するために使用される可変長構造です。
アプリケーションで SID
構造を直接変更しないでください。代わりに、このラッパークラスに用意されているメソッドを使用してください。 AtlGetOwnerSid
、AtlSetGroupSid
、AtlGetGroupSid
、AtlSetOwnerSid
も参照してください。
Windows のアクセス制御モデルの概要については、Windows SDK のアクセス制御に関するページをご覧ください。
要件
ヘッダー: atlsecurity.h
CSid::AccountName
CSid
オブジェクトに関連付けられているアカウントの名前を返します。
LPCTSTR AccountName() const throw(...);
戻り値
アカウントの名前を指す LPCTSTR
を返します。
解説
このメソッドは、指定された SID
(セキュリティ識別子) での名前の検索を試行します。 詳細については、「LookupAccountSid
」を参照してください。
SID
のアカウント名が見つからない場合、AccountName
は空の文字列を返します。 この結果は、ネットワークのタイムアウトによって、このメソッドで名前を検索できない場合に発生する可能性があります。 また、サインイン セッションを識別する SID
など、対応するアカウント名のないセキュリティ識別子に対しても発生します。
CSid::CSid
コンストラクター。
CSid() throw();
CSid(const SID& rhs) throw(...);
CSid(const CSid& rhs) throw(...);
CSid(
const SID_IDENTIFIER_AUTHORITY& IdentifierAuthority,
BYTE nSubAuthorityCount,
...) throw(...);
explicit CSid(
LPCTSTR pszAccountName,
LPCTSTR pszSystem = NULL) throw(...);
explicit CSid(
const SID* pSid,
LPCTSTR pszSystem = NULL) throw(...);
パラメーター
rhs
既存の CSid
オブジェクトまたは SID
(セキュリティ識別子) 構造体。
IdentifierAuthority
認証。
nSubAuthorityCount
サブ認証の数。
pszAccountName
アカウント名。
pszSystem
システム名。 この文字列には、リモート コンピューターの名前を使用できます。 この文字列が NULL の場合は、代わりにローカル システムが使用されます。
pSid
SID
構造体へのポインター。
解説
コンストラクターでは、内部データ メンバーを SidTypeInvalid
に設定するか、既存の CSid
、SID
、または既存のアカウントから設定をコピーして、CSid
オブジェクトを初期化します。
初期化に失敗した場合、コンストラクターは CAtlException
クラスをスローします。
CSid::~CSid
デストラクター。
virtual ~CSid() throw();
解説
デストラクターは、オブジェクトによって取得されたすべてのリソースを解放します。
CSid::CSidArray
CSid
オブジェクトの配列。
typedef CAtlArray<CSid> CSidArray;
解説
この typedef は、ACL (アクセス制御リスト) からセキュリティ識別子を取得するために使用できる配列型を指定します。 以下を参照してください。CAcl::GetAclEntries
CSid::Domain
CSid
オブジェクトに関連付けられているドメインの名前を返します。
LPCTSTR Domain() const throw(...);
戻り値
ドメインを指す LPCTSTR
を返します。
解説
このメソッドは、指定された SID
(セキュリティ識別子) での名前の検索を試行します。 詳細については、「LookupAccountSid
」を参照してください。
SID
のアカウント名が見つからない場合、Domain
はドメインを空の文字列をとして返します。 この結果は、ネットワークのタイムアウトによって、このメソッドで名前を検索できない場合に発生する可能性があります。 また、サインイン セッションを識別する SID
など、対応するアカウント名のないセキュリティ識別子に対しても発生します。
CSid::EqualPrefix
SID
(セキュリティ識別子) プレフィックスが等しいかどうかをテストします。
bool EqualPrefix(const SID& rhs) const throw();
bool EqualPrefix(const CSid& rhs) const throw();
パラメーター
rhs
比較する SID
(セキュリティ識別子) 構造体または CSid
オブジェクト。
戻り値
正常に終了した場合は、TRUE
を返します。それ以外の場合は、FALSE
を返します。
解説
詳細については、EqualPrefixSid
を参照してください。
CSid::GetLength
CSid
オブジェクトの長さを返します。
UINT GetLength() const throw();
戻り値
CSid
オブジェクトの長さをバイト単位で返します。
解説
CSid
構造体が有効でない場合、戻り値は未定義です。 GetLength
を呼び出す前に、CSid::IsValid
メンバー関数を使用して、CSid
が有効であることを確認します。
Note
デバッグ ビルドでは、CSid
オブジェクトが無効である場合、この関数により、ASSERT が生成されます。
CSid::GetPSID
SID
(セキュリティ識別子) 構造体へのポインターを返します。
const SID* GetPSID() const throw(...);
戻り値
CSid
オブジェクトの基になる SID
構造体のアドレスを返します。
CSid::GetPSID_IDENTIFIER_AUTHORITY
SID_IDENTIFIER_AUTHORITY
構造体を指すポインターを返します。
const SID_IDENTIFIER_AUTHORITY* GetPSID_IDENTIFIER_AUTHORITY() const throw();
戻り値
メソッドが成功すると、SID_IDENTIFIER_AUTHORITY
構造体のアドレスが返されます。 失敗した場合、戻り値は未定義です。 CSid
オブジェクトが有効でない場合、エラーが発生する可能性があります。この場合、CSid::IsValid
メソッドは FALSE
を返します。 拡張されたエラー情報を取得するには、 GetLastError
関数を呼び出します。
Note
デバッグ ビルドでは、CSid
オブジェクトが無効である場合、この関数により、ASSERT が生成されます。
CSid::GetSubAuthority
SID
(セキュリティ識別子) 構造体の指定されたサブ認証を返します。
DWORD GetSubAuthority(DWORD nSubAuthority) const throw();
パラメーター
nSubAuthority
サブ認証。
戻り値
nSubAuthority
によって参照されるサブ認証を返します。 サブ機関の値は相対識別子 (RID) です。
解説
nSubAuthority
パラメーターでは、メソッドが返すサブ認証配列要素を識別するインデックス値を指定します。 メソッドは、この値に対して検証テストを実行しません。 アプリケーションでは CSid::GetSubAuthorityCount
を呼び出 して、許容される値の範囲を検出できます。
Note
デバッグ ビルドでは、CSid
オブジェクトが無効である場合、この関数により、ASSERT が生成されます。
CSid::GetSubAuthorityCount
サブ認証の数を返します。
UCHAR GetSubAuthorityCount() const throw();
戻り値
メソッドが成功した場合、戻り値はサブ認証の数になります。
メソッドが失敗した場合、戻り値は未定義です。 CSid
オブジェクトが無効な場合、メソッドは失敗します。 拡張されたエラー情報を取得するには、GetLastError
を呼び出します。
Note
デバッグ ビルドでは、CSid
オブジェクトが無効である場合、この関数により、ASSERT が生成されます。
CSid::IsValid
CSid
オブジェクトの有効性をテストします。
bool IsValid() const throw();
戻り値
CSid
オブジェクトが有効な場合は TRUE
を、そうでない場合は FALSE
を返します。 このメソッドの拡張エラー情報はありません。GetLastError
を呼び出さないでください。
解説
IsValid
メソッドは、リビジョン番号が既知の範囲内であり、サブ認証の数が最大値より小さいと確認することで、CSid
オブジェクトを検証します。
CSid::LoadAccount
指定されたアカウント名とドメイン、または既存の SID
(セキュリティ識別子) 構造体で、CSid
オブジェクトを更新します。
bool LoadAccount(
LPCTSTR pszAccountName,
LPCTSTR pszSystem = NULL) throw(...);
bool LoadAccount(
const SID* pSid,
LPCTSTR pszSystem = NULL) throw(...);
パラメーター
pszAccountName
アカウント名。
pszSystem
システム名。 この文字列には、リモート コンピューターの名前を使用できます。 この文字列が NULL の場合は、代わりにローカル システムが使用されます。
pSid
SID
構造体へのポインター。
戻り値
正常に終了した場合は、TRUE
を返します。それ以外の場合は、FALSE
を返します。 拡張されたエラー情報を取得するには、GetLastError
を呼び出します。
解説
LoadAccount
は、指定された名前でセキュリティ識別子の検索を試行します。 詳細については、LookupAccountSid
を参照してください。
CSid::operator =
代入演算子。
CSid& operator= (const CSid& rhs) throw(...);
CSid& operator= (const SID& rhs) throw(...);
パラメーター
rhs
CSid
オブジェクトに割り当てる SID
(セキュリティ識別子) または CSid
。
戻り値
更新された CSid
オブジェクトへの参照を返します。
operator ==
2 つのセキュリティ記述子オブジェクトが等しいかどうかをテストします。
bool operator==(
const CSid& lhs,
const CSid& rhs) throw();
パラメーター
lhs
==
演算子の左側に表示される SID
(セキュリティ識別子) または CSid
。
rhs
==
演算子の右側に表示される SID
(セキュリティ識別子) または CSid
。
戻り値
セキュリティ記述子が等しい場合は TRUE
、それ以外の場合は FALSE
。
operator !=
2 つのセキュリティ記述子オブジェクトが等しくないかどうかをテストします。
bool operator!=(
const CSid& lhs,
const CSid& rhs) throw();
パラメーター
lhs
!=
演算子の左側に表示される SID
(セキュリティ識別子) または CSid
。
rhs
!=
演算子の右側に表示される SID
(セキュリティ識別子) または CSid
。
戻り値
セキュリティ記述子が等しくない場合は TRUE
、それ以外の場合は FALSE
。
operator <
2 つのセキュリティ記述子オブジェクトの相対値を比較します。
bool operator<(
const CSid& lhs,
const CSid& rhs) throw();
パラメーター
lhs
<
演算子の左側に表示される SID
(セキュリティ識別子) または CSid
。
rhs
<
演算子の右側に表示される SID
(セキュリティ識別子) または CSid
。
戻り値
lhs
が rhs
より小さい場合は TRUE
。それ以外の場合は FALSE
。
operator <=
2 つのセキュリティ記述子オブジェクトの相対値を比較します。
bool operator<=(
const CSid& lhs,
const CSid& rhs) throw();
パラメーター
lhs
<=
演算子の左側に表示される SID
(セキュリティ識別子) または CSid
。
rhs
<=
演算子の右側に表示される SID
(セキュリティ識別子) または CSid
。
戻り値
lhs
が rhs
以下の場合は TRUE
。それ以外の場合は FALSE
。
operator >
2 つのセキュリティ記述子オブジェクトの相対値を比較します。
bool operator>(
const CSid& lhs,
const CSid& rhs) throw();
パラメーター
lhs
>
演算子の左側に表示される SID
(セキュリティ識別子) または CSid
。
rhs
>
演算子の右側に表示される SID
(セキュリティ識別子) または CSid
。
戻り値
lhs
が rhs
より大きい場合は TRUE
。それ以外の場合は FALSE
。
operator >=
2 つのセキュリティ記述子オブジェクトの相対値を比較します。
bool operator>=(
const CSid& lhs,
const CSid& rhs) throw());
パラメーター
lhs
>=
演算子の左側に表示される SID
(セキュリティ識別子) または CSid
。
rhs
>=
演算子の右側に表示される SID
(セキュリティ識別子) または CSid
。
戻り値
lhs
が rhs
以上の場合は TRUE
。それ以外の場合は FALSE
。
CSid::operator const SID *
SID
(セキュリティ識別子) 構造体へのポインターに CSid
をキャストします。
operator const SID *() const;
解説
SID
構造体のアドレスを返します。
CSid::Sid
SID
(セキュリティ識別子) 構造体を文字列として返します。
LPCTSTR Sid() const throw(...);
戻り値
表示、保存、または転送に適した形式で SID
構造体を文字列として返します。 これは、ConvertSidToStringSid
に相当します。
CSid::SidNameUse
CSid
オブジェクトの状態の説明を返します。
SID_NAME_USE SidNameUse() const throw();
戻り値
CSid
オブジェクトの状態を記述する値を格納するデータ メンバーの値を返します。
値 | 説明 |
---|---|
SidTypeUser | ユーザー SID (セキュリティ識別子) を示します。 |
SidTypeGroup | グループ SID を示します。 |
SidTypeDomain | ドメイン SID を示します。 |
SidTypeAlias | 別名 SID を示します。 |
SidTypeWellKnownGroup | 既知のグループの SID を示します。 |
SidTypeDeletedAccount | 削除されたアカウントの SID を示します。 |
SidTypeInvalid | 無効な SID を示します。 |
SidTypeUnknown | 不明な SID の型を示します。 |
SidTypeComputer | コンピューターの SID を示します。 |
解説
SidNameUse
を呼び出して状態を返すには、その前に CSid::LoadAccount
を呼び出して CSid
オブジェクトを更新してください。 SidNameUse
は (LookupAccountName
または LookupAccountSid
を呼び出すことで) オブジェクトの状態を変更しませんが、現在の状態のみを返します。