Danger in Allowing UE to Have Database in "Program File

Post Reply
krdu
Posts: 33
Joined: Fri Oct 07, 2005 5:43 pm

Danger in Allowing UE to Have Database in "Program File

Post by krdu »

In Vista the rules are that if you don't have explicit (by requesting) elevated permissions to write to C:\Program Files, the system lets you think you are writing there but actually redirects (virtualizes) your writes elsewhere.

On the surface, this sucks in a huge way, in the "where are my files" kind of way.

As far as programs on my system, there's a number of "mal-behaved" programs that are getting their writer redirected to the "Virtual Store." Of note are MSN Messenger, the new Nero, and FireFox.

Ideally apps will write to the places they should be writing to, like Isolated Storage and such. Apps should include a manifest that explains what they're going to need (security and permissions demands) so that the consent dialog (run my Consent.exe of all things) would be issued automatically.

The other really bad UI issue is that there's no way to get to the compatibility-based Virtual Store from the common file open/save dialogs.

These files are silently and automatically relocated to :\Users\YOURLOGIN\AppData\Local\VirtualStore\Program Files.

However if you turn off Vista UAC, the program will suddenly fail to find those files (after reboot) because Vista's folder redirection is no longer applied.

Maybe UE should take this weird Vista behavior into consideration and prevent the database being placed in "Program files." Certainly, it should prevent saving downloads to the "Program files" directory or any directory under it because even though they are saved there, they can't possibly be found! ALEX - if you happen to find this, I posted a copy
alex
Posts: 4538
Joined: Thu Feb 27, 2003 5:57 pm

Post by alex »

i'm maintaining compatibility back to win95.

i can use later functions but naturally i try to minimize the use, in principle UE can load any dll (so if it doesn't exist there is nothing to load so it will work back to old systems) and then call any function from later windows version.

but i understand for an application the behaviour is transparent.

what you can do in such a case based on your description:

enable UAC, copy the database to some other conventional location, then switch UE to the new database and the delete the database from the virtual storage.
Post Reply