Share via


Metodo IAzApplication::InitializeClientContextFromStringSid (azroles.h)

Il metodo InitializeClientContextFromStringSid ottiene un puntatore a oggetti IAzClientContextdall'identificatore di sicurezza (SID) specificato in formato testo.

Nota Se possibile, chiamare la funzione InitializeClientContextFromToken anziché InitializeClientContextFromStringSid. Per altre informazioni, vedere la sezione Osservazioni.

 

Sintassi

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

Parametri

[in] SidString

Stringa contenente il formato di testo del SID dell'entità di sicurezza. Deve trattarsi di un SID di stringa valido che può essere convertito dalla funzione ConvertStringSidToSid .

[in] lOptions

Opzioni per la creazione del contesto.

Se viene specificato AZ_CLIENT_CONTEXT_SKIP_GROUP, il SID specificato nel parametro SidString non è necessariamente un account utente valido. Il SID verrà usato per creare il contesto senza convalida. Il contesto creato verrà contrassegnato come creato da un SID, la stringa SID verrà archiviata nel campo del nome client e il campo del nome di dominio sarà vuoto. I gruppi di token non verranno usati nella creazione del contesto client. I gruppi di query LDAP (Lightweight Directory Access Protocol) non sono supportati quando viene specificato AZ_CLIENT_CONTEXT_SKIP_GROUP. Poiché l'account non viene convalidato in Active Directory, le proprietà delle informazioni utente del contesto client, ad esempio UserSamCompat, non saranno valide e, quando vi si accede, restituiranno ERROR_INVALID_HANDLE. La proprietà RoleForAccessCheck e il metodo AccessCheck di IAzClientContext possono comunque essere usati per specificare un ruolo per il controllo di accesso. Il metodo GetRoles di IAzClientContext può comunque essere usato per enumerare i ruoli assegnati al contesto all'interno di un ambito specifico.

Se non viene specificato AZ_CLIENT_CONTEXT_SKIP_GROUP, il SID deve rappresentare un account utente valido.

[in, optional] varReserved

Riservato per utilizzi futuri. Questo parametro può essere uno dei valori seguenti:

  • varReserved.vt == VT_ERROR e varReserved.scode == DISP_E_PARAMNOTFOUND
  • varReserved.vt == VT_EMPTY
  • varReserved.vt == VT_NULL
  • varReserved.vt == VT_I4 e varReserved.lVal == 0
  • varReserved.vt == VT_I2 e varReserved.iVal == 0

[out] ppClientContext

Puntatore a un puntatore all'oggetto IAzClientContext restituito.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce S_OK.

Se la funzione ha esito negativo, restituisce un valore HRESULT che indica l'errore. Per un elenco dei codici di errore comuni, vedere Valori HRESULT comuni.

Commenti

Se possibile, chiamare la funzione InitializeClientContextFromToken anziché InitializeClientContextFromStringSid. InitializeClientContextFromStringSid tenta di recuperare le informazioni disponibili in un token di accesso in cui il client ha effettivamente eseguito l'accesso. Un token di accesso effettivo fornisce altre informazioni, ad esempio il tipo di accesso e le proprietà di accesso, e riflette il comportamento del pacchetto di autenticazione usato per l'accesso. Il contesto client creato da InitializeClientContextFromToken usa un token di accesso e il contesto client risultante è più completo e accurato di un contesto client creato da InitializeClientContextFromStringSid.

Importante Le applicazioni non devono presupporre che il contesto chiamante abbia l'autorizzazione per usare questa funzione. La funzione AuthzInitializeContextFromSid legge l'attributo tokenGroupsGlobalAndUniversal del SID specificato nella chiamata per determinare le appartenenze al gruppo dell'utente corrente. Se l'oggetto dell'utente si trova in Active Directory, il contesto chiamante deve avere accesso in lettura all'attributo tokenGroupsGlobalAndUniversal nell'oggetto utente. L'accesso in lettura all'attributo tokenGroupsGlobalAndUniversal viene concesso al gruppo Accesso compatibile pre-Windows 2000 , ma i nuovi domini contengono un gruppo di accesso pre-Windows 2000 compatibile vuoto per impostazione predefinita perché la selezione predefinita dell'installazione è Autorizzazioni compatibili con Windows 2000 e Windows Server 2003. Pertanto, le applicazioni potrebbero non avere accesso all'attributo tokenGroupsGlobalAndUniversal; in questo caso, la funzione AuthzInitializeContextFromSid ha esito negativo con ACCESS_DENIED. Le applicazioni che usano questa funzione devono gestire correttamente questo errore e fornire la documentazione di supporto. Per semplificare la concessione dell'autorizzazione degli account per eseguire query sulle informazioni di gruppo di un utente, aggiungere account che necessitano della possibilità di cercare le informazioni di gruppo al gruppo di accesso all'autorizzazione di Windows.
 
Le applicazioni che chiamano questa funzione devono usare il nome di dominio completo o il nome dell'entità utente (UPN). In caso contrario, questo metodo potrebbe non riuscire tra foreste se viene usato il nome di dominio NetBIOS e i due domini non hanno una relazione di trust diretta.

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione azroles.h
Libreria Azroles.lib
DLL Azroles.dll
Componente ridistribuibile Windows Server 2003 Administration Tools Pack in Windows XP

Vedi anche

Consentire l'accesso anonimo

IAzApplication