Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查COM方法调用是本地调用还是远程调用 我在网络上的某台计算机上运行了一个C++语言的COM服务器。客户端可以从其他计算机对其执行远程调用。如何在COM服务器的方法内部检查给定的调用是本地(来自同一台计算机)还是远程?_C++_Com_Dcom - Fatal编程技术网

检查COM方法调用是本地调用还是远程调用 我在网络上的某台计算机上运行了一个C++语言的COM服务器。客户端可以从其他计算机对其执行远程调用。如何在COM服务器的方法内部检查给定的调用是本地(来自同一台计算机)还是远程?

检查COM方法调用是本地调用还是远程调用 我在网络上的某台计算机上运行了一个C++语言的COM服务器。客户端可以从其他计算机对其执行远程调用。如何在COM服务器的方法内部检查给定的调用是本地(来自同一台计算机)还是远程?,c++,com,dcom,C++,Com,Dcom,如果您不使用基于证书的身份验证服务,我建议您查看 根据实际的身份验证服务,PPRIV可能表示指向SEC_WINNT_AUTH_IDENTITY类型的对象的指针。此结构包含客户端的域名。因此,您可以轻松地检查它是否与服务器的匹配 要获取服务器安全对象的实例,可以使用以下代码: HRESULT hr; CComQIPtr<IServerSecurity> ss; if(FAILED(hr = ::CoGetCallContext(__uuidof(IServerSecurity), re

如果您不使用基于证书的身份验证服务,我建议您查看

根据实际的身份验证服务,PPRIV可能表示指向SEC_WINNT_AUTH_IDENTITY类型的对象的指针。此结构包含客户端的域名。因此,您可以轻松地检查它是否与服务器的匹配

要获取服务器安全对象的实例,可以使用以下代码:

HRESULT hr;
CComQIPtr<IServerSecurity> ss;
if(FAILED(hr = ::CoGetCallContext(__uuidof(IServerSecurity), reinterpret_cast<void**>(&ss))))
    throw com_exception(hr, "Unable to retrieve the server security object");
HRESULT-hr;
CComQIPtr-ss;
if(失败(hr=::CoGetCallContext(uuuIdof(IServerSecurity),重新解释强制转换(&ss)))
抛出com_异常(hr,“无法检索服务器安全对象”);

你最好问你真正的问题。你面临什么问题,你认为这个问题的答案会解决?
HRESULT hr;
CComQIPtr<IServerSecurity> ss;
if(FAILED(hr = ::CoGetCallContext(__uuidof(IServerSecurity), reinterpret_cast<void**>(&ss))))
    throw com_exception(hr, "Unable to retrieve the server security object");