gpt4 book ai didi

c++ - 未找到 SSPI 协商

转载 作者:行者123 更新时间:2023-11-28 03:58:14 30 4
gpt4 key购买 nike

我使用的是 Windows XP Pro SP3。我想在我的代码中使用 SSPI 函数。我编译了我的代码,没有错误。

我将安全包设置为用于协商,这是推荐的。

当我启动我的程序时,Negotiate 无法使用,因为找不到它。因此,我改为尝试“Kerberos”,但出现同样的错误:找不到安全包。

我查看了注册表,根据该键:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa/Security Packages,可用的安全包是:kerberosmsv1_0 channel wdigestNegotiateNTLM 缺失。

我不明白为什么我的程序找不到任何安全包。返回的错误代码是 0x80090305,我找不到任何关于修复方法的提示。

所以,如果你掌握了 SSPI,我需要你的帮助!我在注册表中有什么要修改的吗?或者我可能需要注册一些 DLL?

感谢任何提示再见!

最佳答案

SSPI 是无需代码即可调试的牛:)

尝试此代码,看看它是否有效,如果有效,请重试并将 NTLM 替换为 Negotiate。实际上,与其使用“协商”这个词,#include“security.h”并使用 NEGOSSP_NAME。

另外,试试这个,看看 Negotiate 是否在列表中:

int main(int argc, _TCHAR* argv[]){ ULONG cPackages = 0; PSecPkgInfo pInfo = NULL; SECURITY_STATUS stat = EnumerateSecurityPackages(&cPackages, &pInfo); 如果(stat == SEC_E_OK){ 对于 (ULONG i = 0; i < cPackages; i++) { wprintf(L"%s\t%s\n",pInfo[i].Name, pInfo[i].Comment); } FreeContextBuffer(pInfo); } 返回 0;

确保您在 header 中定义了 SECURITY_WIN32,并与 secur32 链接。

关于c++ - 未找到 SSPI 协商,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2390911/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com