RPC服务器未知身份验证

时间:2019-12-04 17:25:22

标签: c++ ssl mfc rpc schannel

我正在尝试使用SChannel用C ++制作具有SSL通讯功能的RPC服务器,并且所有与SCHANNEL_CRED和主体名称的绑定和设置都很好,直到我进入{{1} }生成的RPC客户端。当我尝试调试上述方法时,出现一个异常:NdrGetBuffer

RPC_S_UNKNOWN_AUTHN_SERVICE 1747

服务器端:

NdrGetBuffer( (PMIDL_STUB_MESSAGE) &_StubMsg, _StubMsg.BufferLength, _Handle );

我正在检查每个结果,所有结果都返回RpcServerUseProtseqEp( L"ncalrpc", RPC_C_LISTEN_MAX_CALLS_DEFAULT, L"appropriate endpoint", NULL ); store = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, (HCRYPTPROV)NULL, CERT_SYSTEM_STORE_CURRENT_USER, L"My"); cert = CertFindCertificateInStore(store, X509_ASN_ENCODING|PKCS_7_ASN_ENCODING, 0, CERT_FIND_SUBJECT_STR_A, CertCommonName, NULL); ZeroMemory(&SchannelCred, sizeof(SchannelCred)); SchannelCred.dwVersion = SCHANNEL_CRED_VERSION; SchannelCred.cCreds = 1; SchannelCred.paCred = &cert; RpcCertGeneratePrincipalNameW( cert, RPC_C_FULL_CERT_CHAIN, &PrincipalName ); RpcServerRegisterAuthInfoW( PrincipalName, RPC_C_AUTHN_GSS_SCHANNEL, NULL, &SchannelCred ); RpcServerRegisterIf2( ifspec, // generated by the MIDL NULL, NULL, RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH, RPC_C_LISTEN_MAX_CALLS_DEFAULT, -1, SecurityCallback ); RpcServerListen( MinCalls MaxCalls TRUE );

客户侧:

RPC_S_OK

再次进行所有检查似乎都成功通过了,但是当我开始使用开头提到的方法时,就会发生异常。

有人知道可能是什么问题吗?

0 个答案:

没有答案