We have a working credential provider for Windows 7 that we ported to work in Windows 8. For Windows 8 we are wrapping the {60b78e88-ead8-445c-9cfd-0b87f74ea6cd} and {LiveId CredProv - F8A0B131-5F68-486c-8040-7E8FC3C85BB6} credential providers. We are also doing some field manipulations in side GetFieldDescriptorAt() to pass only one CPFT_TILE_IMAGE. Everything works fine except for a Windows account with no password when I lock the desktop it doesn't stop at lock screen, I am again logged into the desktop. On debugging I see that ICredentialProviderCredential::SetSelected() gets called immediately and logs me back in.
I also see for a Windows 7 credential provider the SetSelected() is called when a tile is selected. Which is not the case with my credential provider wrapper on Windows 8. I am not getting why is SetSelected getting called without actually selecting a tile.
Not sure which part of code I should be posting. Let me know if more details or code snippets are required. Any suggestions on this would be really helpful.