2017-03-17 130 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. 檢查開始,你正在使用的標誌可以從客戶端使用,不是服務器只