I have an c# winform application that runs under a local account but needs to monitor folders on a domain. I am using slightly modified code from here to copy the files and that works fine. Can similar code be used with the FileSystemWatcher set up impersonation so I can monitor a folder on a domain?
+1
A:
Yes, there is a good impersonation class here, include this class in your project and than simply place your FileSystemWatcher within a using block like this:
using ( new Impersonator( "myUsername", "myDomainname", "myPassword" ) )
{
...
<code that executes under the new context>
...
}
kzen
2010-04-01 18:28:43
I wrapped the initialization of my FileSystemWatcher in a using block for the Impersonator like you suggested and it worked like a champ. Thanks.
AdmSteck
2010-04-01 19:37:56
np, happy coding...
kzen
2010-04-01 19:44:03
A:
You could:
Apply permissions to the domain folders that allow non-domain users access (i.e Everyone)
Logon with a domain account that has permissions and run the winform app
Refactor the FileSystemWtcher code into a windows service and run it under a domian account with sufficient permissions
Impersonate a domain account within the existing code, there are several good solutions on code project.
HollyStyles
2010-04-01 18:31:11