CoSetProxyBlanket
Sets the authentication information that will be used to make calls on the
specified proxy.
HRESULT CoSetProxyBlanket(
void * pProxy,
|
//Indicates the proxy to set
|
DWORD dwAuthnSvc,
|
//Authentication service to use
|
DWORD dwAuthzSvc,
|
//Authorization service to use
|
WCHAR * pServerPrincName,
|
//The server principal name to use with the authentication service
|
DWORD dwAuthnLevel,
|
//The authentication level to use
|
DWORD dwImpLevel,
|
//The impersonation level to use
|
RPC_AUTH_IDENTITY_HANDLE * pAuthInfo,
|
//The identity of the client
|
DWORD dwCapabilities
|
//Undefined &emdash; capability flags
|
);
|
|
Parameter
-
pProxy
-
[in] Pointer to an interface on the proxy for which this authentication
information is to be set.
-
dwAuthnSvc
-
[in] A single DWORD value from the list of
RPC_C_AUTHN_xxx constants indicating the authentication
service to use. It may be RPC_C_AUTHN_NONE if no authentication is
required.
-
dwAuthzSvc
-
[in] A single DWORD value from the list of
RPC_C_AUTHZ_xxx constants indicating the authorization
service to use. If you are using the system default authentication
service, use RPC_C_AUTHZ_NONE.
-
pServerPrincName
-
[in] Points to a WCHAR string that indicates the server principal name to use
with the authentication service. If you are using RPC_C_AUTHN_WINNT, the
principal name must be NULL.
-
dwAuthnLevel
-
[in] A single DWORD value from the list of
RPC_C_AUTHN_LEVEL_xxx constants indicating
the authentication level to use.
-
dwImpLevel
-
[in] A single DWORD value from the list of
RPC_C_IMP_LEVEL_xxx constants indicating the
impersonation level to use. Currently, only RPC_C_IMP_LEVEL_IMPERSONATE and
RPC_C_IMP_LEVEL_IDENTIFY are supported.
-
pAuthInfo
-
[in] Establishes the identity of the client. It is authentication service
specific. Some authentication services allow the application to pass in a
different user name and password. COM keeps a pointer to the memory passed in
until COM is uninitialized or a new value is set. If NULL is specified COM
uses the current identity (the process token). For NTLMSSP the structure is
SEC_WINNT_AUTH_IDENTITY_W.
-
dwCapabilities
-
[in] Flags to establish indicating the further capabilities of this proxy.
Currently, no capability flags are defined.
The caller should specify EOAC_NONE. EOAC_MUTUAL_AUTH is defined and may be
used by other security providers, but is not supported by NTLMSSP. Thus,
NTLMSSP will accept this flag without generating an error but without
providing mutual authentication.
Return Values
-
S_OK
-
Success, append the headers.
-
E_INVALIDARG
-
One or more arguments is invalid.
Remarks
Sets the authentication information that will be used to make calls on the
specified proxy. This function encapsulates the following sequence of common
calls (error handling excluded):
pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
pcs->SetBlanket(pProxy, dwAuthnSvc, dwAuthzSvc, pServerPrincName,
dwAuthnLevel, dwImpLevel, pAuthInfo, dwCapabilities);
pcs->Release();
See Also
IClientSecurity::SetBlanket,
CoQueryClientBlanket,
Security in COM