即使使用 RPC_C_AUTHN_NONE,Windows RPC 访问也会被拒绝

Posted

技术标签:

【中文标题】即使使用 RPC_C_AUTHN_NONE,Windows RPC 访问也会被拒绝【英文标题】:Windows RPC access denied even with RPC_C_AUTHN_NONE 【发布时间】:2015-05-07 16:45:35 【问题描述】:

我在尝试将我的 RPC 客户端连接到我的 RPC 服务器时遇到此错误:

Error occurred:5

一些谷歌搜索向我展示了这个错误的含义:access denied。 问题不在于防火墙。

这里是服务器部分,这里我指定 RPC_C_AUTHN_NONE 让大家连接:

RPC_STATUS status;
printf("RPC Server Starting...\n");

status = RpcServerUseProtseqEp(
    (unsigned char *)"ncacn_ip_tcp",
    RPC_C_PROTSEQ_MAX_REQS_DEFAULT,
    (unsigned char *)"9191",
    RPC_C_AUTHN_NONE);
if (status)  printf("Error:%d\n", status); exit(status); 
printf("RPC Server Configured\n");

这是引发错误的客户端部分:

RpcTryExcept 
    unsigned char szMsg[] = "Client: I can RPC now!\n";
    md5(szMsg);
 RpcExcept(1) 
    printf("Error occurred:%d\n", RpcExceptionCode());

RpcEndExcept

如何纠正这个问题,以便让任何 RPC 客户端连接?

同样的顺序,你知道用于 Windows RPC 身份验证的好的 RPC 文档吗?

非常感谢!

【问题讨论】:

【参考方案1】:

我花了一些时间弄清楚为什么会发生这种情况,并在找到解决方案后提供这个答案,以帮助可能遇到此问题的人:

默认情况下,RPC 连接只授予经过身份验证的客户端。这可以通过编辑注册表项或应用 GPO 来更改对未经身份验证的用户的限制,如指定的 here。

【讨论】:

以上是关于即使使用 RPC_C_AUTHN_NONE,Windows RPC 访问也会被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

Win32 API 类似于 CreateProcess,但适用于 bat/cmd/等。 (即使用 PATHEXT)

win2003 PHP服务器的突破新思路

正确使用 Win32 设备上下文

win10电脑4g内存不足怎么办啊

win10坑爹的问题

win32 API 搜索路径失败