CSid
類別
這個類別是 (安全性標識子) 結構的包裝函式 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
參閱、 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
。
備註
建構函式會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
。
備註
方法IsValid
CSid
會驗證物件,方法是確認修訂編號在已知範圍內,且子授權數目小於最大值。
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
),但只會傳回目前的狀態。