這個類別是 (安全性標識子) 結構的包裝函式 SID 。
重要
這個類別及其成員不能用於在 Windows 執行階段 中執行的應用程式。
語法
class CSid;
成員
公用 typedefs
| 名稱 | 描述 |
|---|---|
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 |
CSid更新指定帳戶名稱和網域或現有SID結構的物件。 |
CSid::Sid |
傳回標識符字串。 |
CSid::SidNameUse |
傳回 物件狀態 CSid 的描述。 |
操作員
| 名稱 | 描述 |
|---|---|
CSid::operator = |
指派運算子。 |
CSid::operator const SID * |
將 CSid 物件轉換成 結構的指標 SID 。 |
全域運算子
| 名稱 | 描述 |
|---|---|
operator == |
測試兩個安全性描述元物件是否相等 |
operator != |
測試兩個安全性描述元物件是否不相等 |
operator < |
比較兩個安全性描述元對象的相對值。 |
operator > |
比較兩個安全性描述元對象的相對值。 |
operator <= |
比較兩個安全性描述元對象的相對值。 |
operator >= |
比較兩個安全性描述元對象的相對值。 |
備註
結構 SID 是可變長度結構,用來唯一識別使用者或群組。
應用程式不應該直接修改 SID 結構,而是改用這個包裝函式類別中提供的方法。 請AtlGetOwnerSid參閱、 AtlSetGroupSidAtlGetGroupSid與 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 。
備註
建構函式會CSid初始化 物件、將內部數據成員設定為 SidTypeInvalid,或從現有的、 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 有效。
注意
在偵錯組建下,如果對象無效, CSid 函式將會導致ASSERT。
CSid::GetPSID
傳回 (安全性標識子) 結構的指標 SID 。
const SID* GetPSID() const throw(...);
傳回值
傳回物件基礎SID結構的位址CSid。
CSid::GetPSID_IDENTIFIER_AUTHORITY
傳回 結構的 SID_IDENTIFIER_AUTHORITY 指標。
const SID_IDENTIFIER_AUTHORITY* GetPSID_IDENTIFIER_AUTHORITY() const throw();
傳回值
如果方法成功,它會傳回 結構的位址 SID_IDENTIFIER_AUTHORITY 。 如果失敗,則傳回值未定義。 如果 CSid 物件無效,則可能發生失敗,在此情況下, CSid::IsValid 方法會傳 FALSE回 。 您可以呼叫 函式 GetLastError 以取得擴充錯誤資訊。
注意
在偵錯組建下,如果對象無效, CSid 函式將會導致ASSERT。
CSid::GetSubAuthority
傳回 (安全性識別子) 結構中指定的 SID 子授權。
DWORD GetSubAuthority(DWORD nSubAuthority) const throw();
參數
nSubAuthority
子授權。
傳回值
傳回 所 nSubAuthority參考的子授權。 子授權值是相對標識碼 (RID)。
備註
參數 nSubAuthority 會指定索引值,識別方法將傳回的子授權陣列專案。 方法不會對此值執行任何驗證測試。 應用程式可以呼叫 CSid::GetSubAuthorityCount 來探索可接受的值範圍。
注意
在偵錯組建下,如果對象無效, CSid 函式將會導致ASSERT。
CSid::GetSubAuthorityCount
傳回子授權計數。
UCHAR GetSubAuthorityCount() const throw();
傳回值
如果方法成功,傳回值就是子授權計數。
如果方法失敗,則傳回值未定義。 如果對象無效, CSid 則方法會失敗。 若要取得延伸錯誤資訊,請呼叫 GetLastError。
注意
在偵錯組建下,如果對象無效, CSid 函式將會導致ASSERT。
CSid::IsValid
CSid測試物件是否有效。
bool IsValid() const throw();
傳回值
如果CSid物件有效,FALSE則傳TRUE回 ,如果不是則傳回 。 此方法沒有擴充的錯誤資訊;請勿呼叫 GetLastError。
備註
方法IsValidCSid會驗證物件,方法是確認修訂編號在已知範圍內,且子授權數目小於最大值。
CSid::LoadAccount
CSid更新指定帳戶名稱和網域的物件,或現有的 SID (安全性識別子) 結構。
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
或 要SID指派給 CSid 物件的 (安全性標識符CSid)。
傳回值
傳回已更新 CSid 對象的參考。
operator ==
測試兩個安全性描述元物件是否相等。
bool operator==(
const CSid& lhs,
const CSid& rhs) throw();
參數
lhs
SID 出現在運算子左側的 == (安全性識別元) 或 CSid 。
rhs
SID 在操作員右側的 == (安全性識別碼) CSid 或 。
傳回值
TRUE 如果安全性描述項目相等,則為 ,否則 FALSE為 。
operator !=
測試兩個安全性描述元物件是否不相等。
bool operator!=(
const CSid& lhs,
const CSid& rhs) throw();
參數
lhs
SID 出現在運算子左側的 != (安全性識別元) 或 CSid 。
rhs
SID 在操作員右側的 != (安全性識別碼) CSid 或 。
傳回值
TRUE 如果安全性描述元不相等,則為 ,否則 FALSE為 。
operator <
比較兩個安全性描述元對象的相對值。
bool operator<(
const CSid& lhs,
const CSid& rhs) throw();
參數
lhs
SID 出現在運算子左側的 < (安全性識別元) 或 CSid 。
rhs
SID 在操作員右側的 < (安全性識別碼) CSid 或 。
傳回值
TRUE 如果 lhs 小於 ,則為 rhs,否則 FALSE為 。
operator <=
比較兩個安全性描述元對象的相對值。
bool operator<=(
const CSid& lhs,
const CSid& rhs) throw();
參數
lhs
SID 出現在運算子左側的 <= (安全性識別元) 或 CSid 。
rhs
SID 在操作員右側的 <= (安全性識別碼) CSid 或 。
傳回值
TRUE 如果 lhs 小於或等於 ,則為 rhs,否則 FALSE為 。
operator >
比較兩個安全性描述元對象的相對值。
bool operator>(
const CSid& lhs,
const CSid& rhs) throw();
參數
lhs
SID 出現在運算子左側的 > (安全性識別元) 或 CSid 。
rhs
SID 在操作員右側的 > (安全性識別碼) CSid 或 。
傳回值
TRUE 如果 lhs 大於 rhs,則為 ,否則 FALSE為 。
operator >=
比較兩個安全性描述元對象的相對值。
bool operator>=(
const CSid& lhs,
const CSid& rhs) throw());
參數
lhs
SID 出現在運算子左側的 >= (安全性識別元) 或 CSid 。
rhs
SID 在操作員右側的 >= (安全性識別碼) CSid 或 。
傳回值
TRUE 如果 lhs 大於或等於 ,則為 rhs,否則 FALSE為 。
CSid::operator const SID *
將 CSid 物件轉換成 (安全性識別子) 結構的指標 SID 。
operator const SID *() const;
備註
傳回 結構的位址 SID 。
CSid::Sid
以字串的形式傳 SID 回 (安全性標識子) 結構。
LPCTSTR Sid() const throw(...);
傳回值
以 SID 適合顯示、儲存或傳輸的格式傳回 結構作為字串。 相當於 ConvertSidToStringSid。
CSid::SidNameUse
傳回 物件狀態 CSid 的描述。
SID_NAME_USE SidNameUse() const throw();
傳回值
傳回數據成員的值,這個值會儲存描述對象狀態的值 CSid 。
| 值 | Description |
|---|---|
| SidTypeUser | 指出使用者 SID (安全性標識符)。 |
| SidTypeGroup | 表示群組 SID。 |
| SidTypeDomain | 表示網域 SID。 |
| SidTypeAlias | 表示別名 SID。 |
| SidTypeWellKnownGroup | 表示 SID 已知群群組的 。 |
| SidTypeDeletedAccount | 表示 SID 已刪除帳戶的 。 |
| SidTypeInvalid | 表示無效 SID的 。 |
| SidTypeUnknown | 表示未知 SID 的類型。 |
| SidTypeComputer | 指出 SID 電腦的 。 |
備註
呼叫 CSid::LoadAccount 以更新 CSid 物件,再呼叫 SidNameUse 以傳回其狀態。 SidNameUse 不會變更物件的狀態(藉由呼叫 LookupAccountName 或 LookupAccountSid),但只會傳回目前的狀態。