2

最近、私は CredentialProvider に取り組んでおり、Windows Vista (またはそれ以降のバージョン) のユーザー セッションを自動的にロック解除します (トリガーは任意のイベントにすることができるので、タイマーの終了としましょう)。

そのために、GINA とこの新しいアーキテクチャとの間の変更に関する有益な記事をいくつか読みました。http://msdn.microsoft.com/en-us/magazine/cc163489.aspx .

カスタム CredentialProvider を作成しているすべての人と同じように、ゼロからではなく、Microsoft が提供するサンプル コードから始めたと思います。そして、さまざまな機能の動作 (ロギングなど) を変更しようとしました。

最終的に、カスタム CredentialProvider を使用して SetUsageScenario メソッドを入力できますが、それでも Set または GetSerialization メソッドに到達できません。CredentialProvider の技術文書 (Microsoft が引き続き提供) で私が理解したことから、これらの 2 つのメソッドは自動的に呼び出されるはずです。私が逃したものはありますか?

また、私の最初のアイデアは、暗黙的なユーザー認証を実行するために、Kerberos を使用して認証パッケージを取得することでした。このアイデアは、次のような他の SO または MSDN スレッドに関する情報を探すことで得ました。

このアプローチは良いものですか?

お忙しい中、私の質問に答えていただき、誠にありがとうございました。私の問題を直接解決しない場合でも、明確化を歓迎します:-)

4

2 に答える 2

1

まず、ICredentialProviderCredential::SetSelected(BOOL *pbAutoLogon)およびICredentialProvider::GetCredentialCountメソッドの実装で autologon フラグを true に設定する必要があります。

ICredentialProviderEvents::CredentialsChanged次に、タイマーがヒットしたときに呼び出す必要があります。LogonUI は資格情報を再作成し、autologon が true に設定されているため、GetSerialization()メソッドを呼び出します。

于 2012-12-27T18:51:43.447 に答える
0

SetSerialization関数はによってGetSerializationプロバイダーから呼び出されますLogonUI

ユーザーがユーザー名/パスワードを入力して ENTER ボタンを押すと、LogonUI は関数を呼び出し、4 つのパラメーターの 1 つとしてポインターを提供します。このポインターは、ユーザーが作成して入力した構造GetSerializationを将来的に指すことになります。認証。LogonUI を作成して資格情報プロバイダー コードから呼び出す方法がわかりません。私が知る限り、自分で呼び出すことはできません。 ?CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATIONLogonUIWinlogon

GetSerializationGetSerializationCREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATIONLogonUIWinlogon

「 Credential Provider Technical Reference 」というドキュメントがあり、資格情報プロバイダーに関する詳細を読むことができます。シェルのサンプル フォルダーには、"Autologon" という奇妙なフォルダーがあります。幸運を!

于 2012-12-11T11:25:25.917 に答える