2010-12-28 1 views
4

Credential provider screenshotwie windows 7 Benutzerwechseltaste in vC++ CredentialProvider Probe

  1. I zur Verfügung gestellt einen Screenshot von meinem CredentialProvider Fenster verbergen. In diesem Fenster ist alles in Ordnung, aber ich möchte nicht Switch User Schaltfläche an den Benutzer zeigen. Wie kann ich dies tun. Ich bearbeite nur Win-7 SDK Beispiel für CredentialProvider (C++). Jeder kann mir helfen, oder irgendeinen Link für Code-Hilfe.

  2. Eine weitere Sache, die ich fragen möchte, ist standardmäßig, der Benutzername Textfeld zeigt EditText in grauer Farbe. Wie ich es zu Username Text ändern könnte. Ich kann Text in SHStrDupW(L"", &_rgFieldStrings[SFI_EDIT_TEXT]); Code aber nicht im Hintergrund Text einstellen. Gibt es einen Hack dafür?

Dank SO Mitglieder

Antwort

4

Sie können die Benutzer wechseln Taste erscheinen nicht direkt verhindern; Wenn die Bedingungen vorhanden sind, die es erscheinen lassen, dann wird es erscheinen. Was Sie jedoch tun können: Verhindern Sie die Bedingungen, die dazu führen, dass es angezeigt wird.

Diese Schaltfläche erscheint, wenn entweder eine Kachel ist in dem ausgewählten Zustand und 1.) Ihr Credential Provider Fliesen andere als die aufzählt, die ausgewählt wird, oder 2.) andere Credential Provider Aufzählen Fliese.

Die erste Bedingung ist einfach zu verhindern: In GetCredentialCount(), melden Sie immer, dass Sie nur eine Berechtigung auflisten. (Dies bedeutet natürlich, dass Sie die Kachel strukturieren müssen, um alle Benutzer zu behandeln.)

Um die zweite Bedingung zu verhindern, müssen Sie einen Credential Provider-Filter implementieren. (Suchen Sie nach der "ICredentialProviderFilter" -Schnittstelle, wenn Sie nicht wissen, was das ist.)

Viel Glück.

+0

HALLO ich suchte nach ICredentialProviderFilter Implementierung aber konnte kein gutes Beispiel finden. kannst du mir helfen. –

+0

Es ist ein paar Jahre her, seit das gepostet wurde, aber wenn irgendjemand das auf der Suche nach Hilfe liest, fand ich [dieses Beispiel] (https://github.com/Yubico/yubico-windows-auth/tree/master/ yubiprovider/YubiKeyWrapExistingCredentialProvider) sehr hilfreich. Siehe CProviderFilter.h und CProviderFilter.cpp. Hinweis: Mit der Freigabe von Windows 8 bezieht sich 'CLSID_PasswordCredentialProvider' jetzt speziell auf den Windows 8-Anmeldeprovider. Wenn Sie auch den Windows 7 Standard ausfiltern möchten, sollten Sie auch 'CLSID_V1PasswordCredentialProvider' herausfiltern – Matt

3

Zur Beantwortung der Frage 2:

Der Benutzername Textfeld EditText in grauer Farbe angezeigt wird. Sie können es in Benutzername Text ändern. Sie setzen Text mit

SHStrDupW(L"", &_rgFieldStrings[SFI_EDIT_TEXT]); 

Werfen Sie einen Blick auf common.h, dort finden Sie

CREDENTIAL_PROVIDER_FIELD_DESCRIPTOR s_rgCredProvFieldDescriptors[] = { SFI_EDIT_TEXT, CPFT_EDIT_TEXT, L"Edit Text" } 

Wenn Sie ändern, um diese Text bearbeiten finden Username, dann wird es in Ihrem Text zeigen Box.