共用方式為


IAzApplication::InitializeClientCoNtextFromStringSid 方法 (azroles.h)

InitializeClientCoNtextFromStringSid方法會從文字格式的指定安全性識別碼 (SID) 取得IAzClientCoNtext物件指標。

注意 可能的話,請呼叫 InitializeClientCoNtextFromToken 函式,而不是 InitializeClientCoNtextFromStringSid。 如需詳細資訊,請參閱<備註>。

 

語法

HRESULT InitializeClientContextFromStringSid(
  [in]           BSTR             SidString,
  [in]           LONG             lOptions,
  [in, optional] VARIANT          varReserved,
  [out]          IAzClientContext **ppClientContext
);

參數

[in] SidString

字串,包含安全性主體之 SID 的文字格式。 這必須是可由 ConvertStringSidToSid 函式轉換的有效字串 SID。

[in] lOptions

建立內容的選項。

如果指定AZ_CLIENT_CONTEXT_SKIP_GROUP, 則 SidString 參數中指定的 SID 不一定是有效的使用者帳戶。 SID 將用來建立內容,而不需驗證。 建立的內容會標示為已從 SID 建立,SID 字串將會儲存在用戶端名稱欄位中,而功能變數名稱欄位將會是空的。 權杖群組不會用於用戶端內容建立中。 指定AZ_CLIENT_CONTEXT_SKIP_GROUP時,不支援輕量型目錄存取通訊協定 (LDAP) 查詢群組。 由於帳戶未在 Active Directory 中驗證,因此用戶端內容的使用者資訊屬性,例如 UserSamCompat將不會有效,而且存取時會傳回ERROR_INVALID_HANDLE。 RoleForAccessCheck屬性和IAzClientCoNtextAccessCheck方法仍可用來指定存取檢查的角色。 IAzClientCoNtextGetRoles方法仍可用來列舉指派給特定範圍內內容的角色。

如果未指定AZ_CLIENT_CONTEXT_SKIP_GROUP,SID 必須代表有效的使用者帳戶。

[in, optional] varReserved

保留供未來使用。 此參數可以是下列其中一個值:

  • varReserved.vt == VT_ERROR 和 varReserved.scode == DISP_E_PARAMNOTFOUND
  • varReserved.vt == VT_EMPTY
  • varReserved.vt == VT_Null
  • varReserved.vt == VT_I4 和 varReserved.lVal == 0
  • varReserved.vt == VT_I2 和 varReserved.iVal == 0

[out] ppClientContext

所傳回 IAzClientCoNtext 物件的指標。

傳回值

如果函式成功,函式會傳回S_OK。

如果函式失敗,它會傳回 HRESULT 值,指出錯誤。 如需常見錯誤碼的清單,請參閱 一般 HRESULT 值

備註

可能的話,請呼叫 InitializeClientCoNtextFromToken 函式,而不是 InitializeClientCoNtextFromStringSidInitializeClientCoNtextFromStringSid 嘗試擷取登入權杖中可用的資訊,而用戶端實際上已登入。 實際的登入權杖提供詳細資訊,例如登入類型和登入屬性,並反映用於登入的驗證套件行為。 InitializeClientCoNtextFromToken所建立的用戶端內容會使用登入權杖,產生的用戶端內容比InitializeClientCoNtextFromStringSid所建立的用戶端內容更完整且精確。

重要 應用程式不應該假設呼叫內容具有使用此函式的許可權。 AuthzInitializeCoNtextFromSid函式會讀取呼叫中所指定 SID 的 tokenGroupsGlobalAndUniversal 屬性,以判斷目前使用者的群組成員資格。 如果使用者的物件位於 Active Directory中,呼叫內容必須具有使用者物件上 tokenGroupsGlobalAndUniversal 屬性的讀取權限。 TokenGroupsGlobalAndUniversal 屬性的讀取存取權會授與 Windows 2000 相容存取 群組,但新的網域預設包含空 的 Windows 2000 相容存取 群組,因為預設設定選取專案是 與 Windows 2000 和 Windows Server 2003 相容的許可權。 因此,應用程式可能無法存取 tokenGroupsGlobalAndUniversal 屬性;在此情況下, AuthzInitializeCoNtextFromSid 函式會失敗並ACCESS_DENIED。 使用此函式的應用程式應該正確處理此錯誤,並提供支援的檔。 若要簡化授與帳戶查詢使用者群組資訊的許可權,請新增需要查詢 Windows 授權存取群組資訊的帳戶。
 
呼叫此函式的應用程式應該使用 UPN) 的完整功能變數名稱或 使用者主體 (名稱 。 否則,如果使用 NetBIOS 功能變數名稱,且兩個網域沒有直接信任關係,這個方法可能會跨樹系失敗。

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 azroles.h
程式庫 Azroles.lib
Dll Azroles.dll
可轉散發套件 Windows XP 上的 Windows Server 2003 系統管理工具套件

另請參閱

允許匿名存取

IAzApplication