Funzione RpcServerRegisterAuthInfo (rpcdce.h)
La funzione RpcServerRegisterAuthInfo registra le informazioni di autenticazione con la libreria di runtime RPC.
Sintassi
RPC_STATUS RpcServerRegisterAuthInfo(
RPC_CSTR ServerPrincName,
unsigned long AuthnSvc,
RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
void *Arg
);
Parametri
ServerPrincName
Puntatore al nome dell'entità da usare per il server durante l'autenticazione delle chiamate di routine remote usando il servizio specificato dal parametro AuthnSvc . Il contenuto del nome e la relativa sintassi sono definiti dal servizio di autenticazione in uso. Per altre informazioni, vedere Nomi delle entità.
AuthnSvc
Servizio di autenticazione da usare quando il server riceve una richiesta per una chiamata di procedura remota.
GetKeyFn
Indirizzo di una routine fornita dall'applicazione server che restituisce le chiavi di crittografia. Vedere RPC_AUTH_KEY_RETRIEVAL_FN.
Specificare un valore di parametro NULL per usare il metodo predefinito di acquisizione della chiave di crittografia. In questo caso, il servizio di autenticazione specifica il comportamento predefinito. Impostare questo parametro su NULL quando si usa il servizio di autenticazione RPC_C_AUTHN_WINNT.
Servizio di autenticazione | GetKeyFn | Arg | Comportamento in fase di esecuzione |
---|---|---|---|
RPC_C_AUTHN_DPA | Ignorato | Ignorato | Non supporta |
RPC_C_AUTHN_GSS_KERBEROS | Ignorato | Ignorato | Non supporta |
RPC_C_AUTHN_GSS_NEGOTIATE | Ignorato | Ignorato | Non supporta |
RPC_C_AUTHN_GSS_SCHANNEL | Ignorato | Ignorato | Non supporta |
RPC_C_AUTHN_MQ | Ignorato | Ignorato | Non supporta |
RPC_C_AUTHN_MSN | Ignorato | Ignorato | Non supporta |
RPC_C_AUTHN_WINNT | Ignorato | Ignorato | Non supporta |
RPC_C_AUTHN_DCE_PRIVATE | NULL | Non Null | Usa il metodo predefinito di acquisizione della chiave di crittografia dalla tabella delle chiavi specificata; L'argomento specificato viene passato alla funzione di acquisizione predefinita. |
RPC_C_AUTHN_DCE_PRIVATE | Non Null | NULL | Usa la funzione di acquisizione della chiave di crittografia specificata per ottenere chiavi dalla tabella delle chiavi predefinita. |
RPC_C_AUTHN_DCE_PRIVATE | Non Null | Non Null | Utilizza la funzione di acquisizione della chiave di crittografia specificata per ottenere chiavi dalla tabella delle chiavi specificata; l'argomento specificato viene passato alla funzione di acquisizione. |
RPC_C_AUTHN_DEC_PUBLIC | Ignorato | Ignorato | Riservato per utilizzi futuri. |
La libreria di runtime RPC passa il valore del parametro ServerPrincName da RpcServerRegisterAuthInfo come valore del parametro ServerPrincName alla funzione di acquisizione GetKeyFn . La libreria di runtime RPC fornisce automaticamente un valore per il parametro key version (KeyVer). Per un valore di parametro KeyVer pari a zero, la funzione di acquisizione deve restituire la chiave più recente disponibile. La funzione di recupero restituisce la chiave di autenticazione nel parametro Key .
Se la funzione di acquisizione chiamata da RpcServerRegisterAuthInfo restituisce uno stato diverso da RPC_S_OK, questa funzione ha esito negativo e restituisce un codice di errore all'applicazione server. Se la funzione di acquisizione chiamata dalla libreria di runtime RPC durante l'autenticazione della richiesta di chiamata di procedura remota di un client restituisce uno stato diverso da RPC_S_OK, la richiesta ha esito negativo e la libreria di runtime RPC restituisce un codice di errore all'applicazione client.
Arg
Puntatore a un parametro da passare alla routine GetKeyFn , se specificato. Questo parametro può essere usato anche per passare un puntatore a una struttura SCHANNEL_CRED per specificare credenziali esplicite se il servizio di autenticazione è impostato su SCHANNEL.
Se il parametro Arg è impostato su NULL, questa funzione userà il certificato predefinito o le credenziali se è stato configurato nel servizio directory.
Valore restituito
Valore | Significato |
---|---|
|
La chiamata ha avuto esito positivo. |
|
Il servizio di autenticazione è sconosciuto. |
Commenti
Un'applicazione server chiama RpcServerRegisterAuthInfo per registrare un servizio di autenticazione da usare per autenticare le chiamate di routine remote. Un server chiama questa routine una volta per ogni servizio di autenticazione che il server vuole registrare. Se il server chiama questa funzione più volte per un determinato servizio di autenticazione, i risultati non sono definiti.
Il servizio di autenticazione specificato da un'applicazione client (tramite RpcBindingSetAuthInfo o RpcServerRegisterAuthInfo) deve essere uno dei servizi di autenticazione specificati dall'applicazione server. In caso contrario, la chiamata alla procedura remota del client ha esito negativo e viene restituito un codice di stato RPC_S_UNKNOWN_AUTHN_SERVICE.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | rpcdce.h (include Rpc.h) |
Libreria | Rpcrt4.lib |
DLL | Rpcrt4.dll |