2012-09-14 16 views

回答

1

這將取決於其GetSerialization()返回密碼格式的細節。

如果您的CredentialProvider像標準密碼提供程序那樣返回序列化的KERB_INTERACTIVE_UNLOCK_LOGON結構,則結構中的用戶名,密碼和域名值必須全部作爲UNICODE_STRING值傳遞。請注意0​​是一個包含當前長度和最大長度值以及16位Unicode(UTF-16LE)字符的緩衝區的結構。由於它們是Unicode,所以它們當然可以用變音符號來保存字母。

但是,如果您的CredntialProvider在窄字符緩衝區中處理密碼,則可能會將您的元音字符處理爲8位Windows CP1252字符。在將它們放入KERB_INTERACTIVE_UNLOCK_LOGON結構並序列化之前,您需要將它們轉換爲16位Unicode。

+0

謝謝。該錯誤是由unicode字符串轉換錯誤的ANSI導致的。 – Adrian

相關問題