如何變更單一登入介面的行為
「企業單一登入」(SSO) 物件模型中的許多物件都會公開 IPropertyBag 介面,此介面可讓您修改指定物件的行為。 如果在 SSO 物件上呼叫 QueryInterface,則可以擷取 IPropertyBag 介面,並將其用來變更目前物件的行為。
變更指定 SSO 介面的行為
在指定的介面上使用 QueryInterface 來擷取 IPropertyBag 執行個體。
使用 IPropertyBag.Write 來設定介面的屬性、類型及值。
下表說明 IPropertyBag propName 和 ptrVar 參數的有效值。
propName | 類型 | ptrValue | 可用於 |
---|---|---|---|
CurrentSSOServer | VT_BSTR | 要將資訊傳送至的伺服器的名稱 | 全部 |
交易 | VT_UNKNOWN VT_EMPTY |
DTC ITransaction 指標,或 NULL 以清除範圍。 | ISSOConfigStore::SetConfigInfo ISSOConfigStore::GetConfigInfo ISSOConfigStore::DeleteConfigInfo ISSOAdmin::CreateApplication ISSOAdmin::D eleteApplication ISSOAdmin::UpdateApplication ISSOAdmin::CreateFieldInfo ISSOMapper::GetFieldInfo |
AppFilterFlags | VT_I4 VT_UI4 |
控制要篩選之應用程式的旗標。 | ISSOMapper::GetApplications ISSOMapper2::GetApplications2 |
AppFilterFlagsMask | VT_I4 VT_UI4 |
控制要篩選之應用程式的旗標遮罩。 | ISSOMapper::GetApplications ISSOMapper2::GetApplications2 |
AsyncCall | VT_BOOL | 若為 True,則使用非同步 RPC 進行呼叫;若為 False,則使用同步 RPC。 | ISSOConfigOM::GetServerStatus ISSOAdmin::GetGlobalInfo |
CurrentSSOServer:用來判斷要傳送 SSO 資訊之伺服器的標準行為如下:
在目前使用者的登錄中尋找。 可以使用命令列工具或 GUI,為目前的使用者設定伺服器名稱。
在所有使用者的登錄中尋找。 可以使用命令列工具或 GUI,為所有的使用者設定伺服器名稱。
如果在登錄中找不到 SSO 伺服器名稱,則使用目前的電腦。
將 CurrentSSOServer 設定為指定的伺服器會覆寫前述的指定介面程序。 一旦設定 CurrentSSOServer 之後,所有後續在該介面上的方法呼叫都會傳送到指定的伺服器。
交易:指定 DTC 交易,以限定 SSO 物件模型所執行的作業範圍。 您必須在 或 中
ptrValue
傳遞 DTC ITransaction 指標,才能清除目前的交易範圍。AppFilterFlags/AppFilterMask:控制要從 ISSOMapper.GetApplications 和 ISSOMapper2.GetApplications 傳回的應用程式類型。 如果應用程式旗標符合篩選器旗標和篩選器旗標遮罩所指定的旗標,它們就會傳回。 一種執行應用程式篩選的方式,是將 AppFilterFlagsMask 設定為 SSO_FLAG_APP_FILTER_BY_TYPE,然後再將 AppFilterFlags 設定為下列的一或多個項目:
SSO_APP_TYPE_INDIVIDUAL
SSO_APP_TYPE_GROUP
SSO_APP_TYPE_CONFIG_STORE
SSO_APP_TYPE_HOST_GROUP
SSO_APP_TYPE_PS_ADAPTER
SSO_APP_TYPE_PS_GROUP_ADAPTER
AsyncCall:如果為 true,則 SSO 會使用非同步遠端程序呼叫來執行 方法, (RPC) 。 此方法在進行時會傳回 E_PENDING。 任何其他的傳回值都代表方法已完成。 AsyncCall 也可讓您輪詢完成的方法。