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