views:

209

answers:

3

@UPDATE:

OK FOR ANYONE ELSE WHO IS SEEKING ADVICE ON THIS ISSUE...


So far, the best thing i have found is to download yourself a cpy of pGina (http://www.pgina.org/) and for 2k/xp modify the GINA, and for vista/win7 you will need to create custom login credentials (pGina have the tools/samples to interface with the vista/win7 architecture).

to confirm -- it appears that this is what Novell are doing with vista/win7 rather than the traditional method of replacing the GINA (like in 2k/xp)

If anyone else comes up with a way to run an application on the logon screen in win7 please post it. Thankyou all for your help and input.



'---------------------------------------------------------------------------------

Ok im writing some vb6 software that requires input before the user logs on to the system.

Basically i want to run an application on the windows logon screen where the user can interact with the program. At present i have the application running as a service allowing to interact with the desktop, but it is still now showing.

Does anyone have any other ideas to get this working.

I know that "Allow service to interact with desktop" will work in windows 2000 / xp, Im running Windows 7 -- i am also aware that services cannot directly interact with a user as of Windows Vista -- saying this, are there any other methods to get my application running on the logon screen. Novell do it :)

Cheers in advance

+2  A: 

You can only do this if you are authenticating the credentials yourself. Prior to Vista, this was done via GINA, but since Vista, you need to write your own Credential Provider.

The reasons behind this are buried deep in the security principles -- Ctrl-Alt-Del will only ever bring up the window station associated with login (etc), and no other application can get to that window station (so you can't create a fake password box over the top to scrape passwords, for instance).

Without knowing why you think your service needs to interact with that desktop, it's difficult to advise further, but it might mean that your design is broken somehow.

Rowland Shaw
Basically i have an application that's a proprietary system which maps a proprietary network drive to the system depending on the user which has logged in. The program which i want to run on the logon screen allows configuration of some of the critical options which are required to be set before the user logs in. Some network logon scripts rely on the settings from the program which is to run on the logon screen.I'm aware about GINA with 2k/xp, but xp is not an option anymore. How much work would be required in writing my own Credential Provider? This would be re-creating the logon screen?
neddy
@neddy Could you not achieve this through AD and login scripts? Or are these settings changing for the same user, for the same machine?
Rowland Shaw
nope they change per user / pc -- basically its almost like a mini novell system that maps users drives to the system. -- so some ad and logon scripts rely on drives that are mapped by this system...
neddy
@neddy I've little knowledge of Novell, but it sounds like you're trying to reimplement bits that Active Directory/Roaming profiles will do for you "out of the box"?
Rowland Shaw
yea ad will do it it you use ad, my problem is it wont work cross-platform reliably, we authenticate our users out of a mysql database -- im looking at using pgina for the authentication, but i still have the initial problem...
neddy
Rowland, thank you for your input -- i have added my current updates to the situation above in the original post....If you do find an answer to what i was initially seeking plz let me know.Kind Regards,
neddy
+2  A: 

Service isolation will probably prevent you doing this from a service.

Pre-vista Novell and the like would probably have used GINA, which was replaced in vista; http://msdn.microsoft.com/en-gb/magazine/cc163489.aspx

Alex K.
Pre Vista/Win7 do use GINA to replace the logon -- i'v been researching this for a few weeks now :/
neddy
A: 

The only way I know of would be to write your own msgina.dll.

It can get dicey during testing though. Any mistakes can mess up your OS so bad that a complete reinstall becomes necessary.

Brad Bruce
Correct me if i'm wrong, but to my understanding msgina.dll is no longer in win vista/7.
neddy
It's been a few years since I've worked with this. It's a tough sell to corporate users to get them to install such a beast, so we dropped the idea.
Brad Bruce