2017-03-17 152 views
0

目前,我使用的安全支持提供程序接口(SSPI)来验证用户凭据,如本文从知春里中描述: How to validate user credentials on Microsoft operating systems验证用户凭据10

这通常效果很好,但我在功能AcceptSecurityContext(在SSPLogonUser方法中生成服务器上下文时使用)上返回错误SEC_E_UNSUPPORTED_FUNCTION(0x80090302L)时,在Windows 10计算机上面临一个问题。

在使用Microsoft API的Windows 10上验证用户凭据还有其他选择吗?

回答

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. 检查开始,你正在使用的标志可以从客户端使用,不是服务器只