COM settings in OPC Classic client components: Difference between revisions
From OPC Labs Knowledge Base
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:Troubleshooting]] | [[Category:Troubleshooting]] | ||
COM and proxy initialization: | |||
* Without UseCustomSecurity: CoInitializeSecurity is not called, CoSetProxyBlanket is not called | |||
* With UseCustomSecurity (the default): CoInitializeSecurity is called, CoSetProxyBlanket is called | |||
CoInitializeSecurity parameters: | CoInitializeSecurity parameters: | ||
* Without TurnOffCallSecurity: dwAuthnLevel = RPC_C_AUTHN_LEVEL_CONNECT (2); dwImpLevel = RPC_C_IMP_LEVEL_IMPERSONATE (3); pSecDesc = <by CSecurityDescriptor::InitializeFromThreadToken()> | * Without TurnOffCallSecurity (the default): dwAuthnLevel = RPC_C_AUTHN_LEVEL_CONNECT (2); dwImpLevel = RPC_C_IMP_LEVEL_IMPERSONATE (3); pSecDesc = <by CSecurityDescriptor::InitializeFromThreadToken()> | ||
* With TurnOffCallSecurity: dwAuthnLevel = RPC_C_AUTHN_LEVEL_NONE (1); dwImpLevel = RPC_C_IMP_LEVEL_IMPERSONATE (3); pSecDesc = NULL | * With TurnOffCallSecurity: dwAuthnLevel = RPC_C_AUTHN_LEVEL_NONE (1); dwImpLevel = RPC_C_IMP_LEVEL_IMPERSONATE (3); pSecDesc = NULL | ||
COAUTHINFO* pAuthInfo in COSERVERINFO* passed to CoCreateInstanceEx (when machine name is not empty): | COAUTHINFO* pAuthInfo in COSERVERINFO* passed to CoCreateInstanceEx (when machine name is not empty): | ||
* Without TurnOffActivationSecurity: dwAuthnSvc = RPC_C_AUTHN_NONE; dwAuthzSvc = RPC_C_AUTHZ_NONE; pwszServerPrincName = NULL; dwAuthnLevel = RPC_C_AUTHN_LEVEL_NONE; dwImpersonationLevel = RPC_C_IMP_LEVEL_IMPERSONATE; pAuthIdentityData = NULL; dwCapabilities = EOAC_NONE; | * Without TurnOffActivationSecurity (the default): dwAuthnSvc = RPC_C_AUTHN_NONE; dwAuthzSvc = RPC_C_AUTHZ_NONE; pwszServerPrincName = NULL; dwAuthnLevel = RPC_C_AUTHN_LEVEL_NONE; dwImpersonationLevel = RPC_C_IMP_LEVEL_IMPERSONATE; pAuthIdentityData = NULL; dwCapabilities = EOAC_NONE; | ||
* With TurnOffActivationSecurity: NULL | * With TurnOffActivationSecurity: NULL | ||
(see https://docs.microsoft.com/en-us/windows/win32/com/turning-off-activation-security?redirectedfrom=MSDN) | (see https://docs.microsoft.com/en-us/windows/win32/com/turning-off-activation-security?redirectedfrom=MSDN) |
Revision as of 12:57, 16 October 2021
COM and proxy initialization:
- Without UseCustomSecurity: CoInitializeSecurity is not called, CoSetProxyBlanket is not called
- With UseCustomSecurity (the default): CoInitializeSecurity is called, CoSetProxyBlanket is called
CoInitializeSecurity parameters:
- Without TurnOffCallSecurity (the default): dwAuthnLevel = RPC_C_AUTHN_LEVEL_CONNECT (2); dwImpLevel = RPC_C_IMP_LEVEL_IMPERSONATE (3); pSecDesc = <by CSecurityDescriptor::InitializeFromThreadToken()>
- With TurnOffCallSecurity: dwAuthnLevel = RPC_C_AUTHN_LEVEL_NONE (1); dwImpLevel = RPC_C_IMP_LEVEL_IMPERSONATE (3); pSecDesc = NULL
COAUTHINFO* pAuthInfo in COSERVERINFO* passed to CoCreateInstanceEx (when machine name is not empty):
- Without TurnOffActivationSecurity (the default): dwAuthnSvc = RPC_C_AUTHN_NONE; dwAuthzSvc = RPC_C_AUTHZ_NONE; pwszServerPrincName = NULL; dwAuthnLevel = RPC_C_AUTHN_LEVEL_NONE; dwImpersonationLevel = RPC_C_IMP_LEVEL_IMPERSONATE; pAuthIdentityData = NULL; dwCapabilities = EOAC_NONE;
- With TurnOffActivationSecurity: NULL