在Windows 10上验证用户凭据

时间:2017-03-17 12:50:45

标签: c++ api passwords windows-10 credentials

目前,我正在使用安全支持提供程序接口(SSPI)来验证用户凭据,如Mircrosoft的本文所述: How to validate user credentials on Microsoft operating systems

这通常很好用,但我现在面临的问题是Windows 10机器上的函数AcceptSecurityContext(在SSPLogonUser方法中生成服务器上下文时使用)返回错误SEC_E_UNSUPPORTED_FUNCTION(0x80090302L) 。

使用Microsoft API在Windows 10上验证用户凭据是否有其他选择?

1 个答案:

答案 0 :(得分:0)

生成该错误是因为AcceptSecurityContext接受的其中一个参数unsigned long fContextReq传递的值错误。

接受的价值是:

  • ASC_REQ_ALLOCATE_MEMORY
  • ASC_REQ_CONNECTION
  • ASC_REQ_DELEGATE
  • ASC_REQ_EXTENDED_ERROR
  • ASC_REQ_REPLAY_DETECT
  • ASC_REQ_SEQUENCE_DETECT
  • ASC_REQ_STREAM

您在问题中提供的文档链接表明并非所有客户端都支持其中传递的参数。

然后继续说here并非所有标志在客户端都有效,并建议仔细阅读那里的帖子以了解您可以使用的内容。

  1. 确保您传递有效值以
  2. 开头
  3. 检查您使用的标志是否可以从客户端使用,而不是仅限服务器