共用方式為


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 請參閱 、 AtlSetGroupSidAtlGetGroupSidAtlSetOwnerSid

如需 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 不會變更物件的狀態(藉由呼叫 LookupAccountNameLookupAccountSid ),但只會傳回目前的狀態。

另請參閱

安全性範例
類別概觀
安全性全域函式
運算子