В настоящее время я пытаюсь понять, как создаются пользовательские поставщики учетных данных.
У меня есть образец, чтобы помочь мне. Этот образец специально реализует ICredentialProvider и ICredentialProviderFilter для WinLogon. Моя работа заключается в реализации сценария использования CPUS_CREDUI.
Тем не менее, есть много вещей, которые я не получаю в начальной реализации, поэтому я даже не могу рассчитывать на свою собственную реализацию.
Вся документация, которую я нашел, только объясняет, что на самом деле делает каждая часть. Это единственная часть, которая «достаточно ясна» в моей голове.
Проблема в том, что я не могу соединить эти части вместе.
Различные функции, казалось, вызывались самой Windows. Как я могу узнать, кто вызывающий абонент, какие параметры используются и тому подобное? Если бы я знал, я мог бы лучше понять весь процесс.
Например :
Существует повторяющийся параметр типа CREDENTIAL_PROVIDER_USAGE_SCENARIO, который, по-видимому, изменяет способ инициализации CP в коде. Кажется, сначала он определен в конструкторе CredentialProvider, но поскольку я не знаю, что вызывает конструктор... Я предполагаю, что он вызывается WinLogon, но если да, то что на самом деле определяет параметры?
В журналах примера значение этого параметра всегда отображается как «CPUS_LOGON». Если это следствие того, что конструктор CP вызывается WinLogon (если моя предыдущая гипотеза верна), как может быть вызван CPUS_CREDUI после входа в систему?
Это основные вопросы, которые у меня есть до сих пор. Спасибо, если кто-то может осветить меня.
Я также открыт для любой дополнительной информации, которую вы хотели бы иметь для меня.