The RpcBindingInqAuthInfo function returns authentication and authorization information from a binding handle.
#include <rpc.h>
RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfo(
RPC_BINDING_HANDLE Binding,
RPC_CHAR PAPI * ServerPrincName,
unsigned long PAPI * AuthnLevel,
unsigned long PAPI * AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE PAPI * AuthIdentity,
unsigned long PAPI * AuthzSvc,
);
Specify a null value to prevent RpcBindingInqAuthInfo from returning the ServerPrincName argument. In this case, the application does not call the RpcStringFree routine.
The level returned in the AuthnLevel argument may be different from the level specified when the client called the RpcBindingSetAuthInfo routine. This discrepancy happens when the RPC run-time library does not support the authentication level specified by the client and automatically upgrades to the next higher authentication level.
Specify a null value to prevent RpcBindingInqAuthInfo from returning the AuthnSvc argument.
Specify a null value to prevent RpcBindingInqAuthInfo from returning the AuthIdentity argument.
Specify a null value to prevent RpcBindingInqAuthInfo from returning the AuthzSvc argument.
The RpcBindingInqAuthInfo function returns one of the following values:
Value | Meaning |
---|---|
RPC_S_OK | Success. |
RPC_S_INVALID_BINDING | Invalid binding handle. |
RPC_S_WRONG_KIND_OF_BINDING | Wrong kind of binding for operation. |
RPC_BINDING_HAS_NO_AUTH | Binding has no authentication information. |
A client application calls the RpcBindingInqAuthInfo function to view the authentication and authorization information associated with a server binding handle. A similar function, RpcBindingInqAuthInfoEx additionally provides security quality of service information on the binding handle.
The RPC run-time library allocates memory for the returned ServerPrincName argument. The application is responsible for calling the RpcStringFree routine for that returned argument string.
When a client application does not know a server's principal name, calling RpcBindingInqAuthInfo after making a remote procedure call provides the server's principal name. For example, clients that import from a group or profile may not know a server's principal name when calling the RpcBindingSetAuthInfo routine.
Windows NT: Yes
Windows CE: Unsupported.
Header: Declared in rpcdce.h.
Import Library: Link with rpcrt4.lib.
RpcBindingInqAuthClient, RpcBindingInqAuthInfoEx, RpcBindingSetAuthInfo, RpcBindingInqOption, RpcStringFree