-1

Windows へのログインを許可する CredentialProvider を作成しました。しかし今日GetSerialization()、「ä」や「ü」などのドイツ語の「ウムラウト」文字を含むパスワードを受け入れないように見えるこの奇妙なエラーを発見しました。誰かが解決策を知っていますか?

前もって感謝します

4

1 に答える 1

1

GetSerialization()パスワードを返す形式の詳細によって異なります。

CredentialProvider が、標準のパスワード プロバイダーのようにシリアル化された構造を返す場合、KERB_INTERACTIVE_UNLOCK_LOGON構造内のユーザー名、パスワード、およびドメイン名の値はすべて、UNICODE_STRING値として渡す必要があります。UNICODE_STRINGは、現在の長さと最大長の値、および 16 ビット Unicode (UTF-16LE) 文字のバッファーを含む構造体であることに注意してください。Unicode であるため、ウムラウト付きの文字を確実に保持できます。

ただし、CredntialProvider が狭い文字バッファーでパスワードを処理する場合、ウムラウト文字を 8 ビット Windows CP1252 文字として処理している可能性があります。KERB_INTERACTIVE_UNLOCK_LOGONそれらを構造体に配置してシリアル化する前に、それらを 16 ビット Unicode に変換する必要があります。

于 2012-10-02T17:13:03.207 に答える