Вопрос

Я использую Подтверждающие доверие потенциалы в сочетании с Creduiprompt forcredentials (Исходные данные для учетных записей).

Я установите EXPECT_CONFIRMATION, и когда учетные данные будут Первый предоставлено пользователь обращается к CredUIConfirmCredentials ВОЗВРАТ НЕТ_ОШИБКИ как и ожидалось.

Однако при всех последующих вызовах в CredUIConfirmCredentials, с одной учетные данные, ОШИБКА_INVALID_PARAMETERПАРАМЕТР возвращается.Это описано в SDK документы как:

Попытка подтвердить ожидание учетные данные завершились неудачей, поскольку учетные данные содержали недопустимые или противоречивые данные.

что довольно сбивает с толку, поскольку это точно такие же учетные данные, которые были успешно сохранены изначально.

Тот же результат будет возвращен, если вы введете другой пароль для того же самого имя пользователя.Что еще более сбивает с толку, так это то, что новые учетные данные фактически сохранены - что, по-видимому, указывает на то, что возвращаемое значение равно фактически указывает на то, что сохраненные учетные данные были перезаписаны, а не что произошла ошибка.Я что-то упускаю, или документация неверна?


Предыстория

Вы можете использовать систему учетных данных Window для хранения учетных данных для вашего собственного приложения.Вы сообщаете Windows, что хотите запросить "общий" верительные грамоты для некоторых "цель":

псевдокод:

CredUIPromptForCredentials("My Application", ref username, ref password);

затем Windows отобразит диалоговое окно:

alt text

Затем ваша задача - проверить учетные данные, введенные пользователем.Если они действительны, вы сообщаете Windows об этом, вызывая Подтверждающие потенциалы.Это делается для того, чтобы гарантировать сохранение только действительных учетных данных:

CredUIConfirmCredentials("My Application", true);

Как только учетные данные будут подтверждены как действительные, Windows сохранит их в защищенном хранилище, которое вы можете просмотреть через Панель управления:

alt text

Ключевые слова:доверие, CredUIConfirmCredentials

Это было полезно?

Решение

я нашел ответ:по замыслу

CredUIConfirmCredentials вернет ошибку "когда нечего делать".Это означает:

  • если учетные данные совпадают с теми, которые уже есть в хранилище учетных данных
  • пользователь не проверил Rembember my password установите флажок
  • вы не установили CREDUI_FLAGS_EXPECT_CONFIRMATION Отметить

Тот факт , что CredUIConfirmCredentials сбой, когда учетные данные совпадают с теми, что уже есть в хранилище, задокументированном в MSDN.(я знаю, что это задокументировано, потому что я добавил в страница документации.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top