Click here to Skip to main content
15,895,142 members
Home / Discussions / C#
   

C#

 
GeneralRe: Really no way to free an object ? Pin
Andres Coder5-Feb-04 9:45
Andres Coder5-Feb-04 9:45 
GeneralRe: Really no way to free an object ? Pin
scadaguy5-Feb-04 13:56
scadaguy5-Feb-04 13:56 
GeneralCan't call a method with parameters when opening a thread Pin
Peter Mills5-Feb-04 7:27
Peter Mills5-Feb-04 7:27 
GeneralRe: Can't call a method with parameters when opening a thread Pin
Bill Dean5-Feb-04 8:39
Bill Dean5-Feb-04 8:39 
GeneralRe: Can't call a method with parameters when opening a thread Pin
boogs5-Feb-04 8:42
boogs5-Feb-04 8:42 
GeneralRe: Can't call a method with parameters when opening a thread Pin
Heath Stewart5-Feb-04 18:04
protectorHeath Stewart5-Feb-04 18:04 
GeneralRe: Can't call a method with parameters when opening a thread Pin
Peter Mills7-Feb-04 14:26
Peter Mills7-Feb-04 14:26 
Generalremoving registry garbages Pin
Shahin775-Feb-04 6:23
Shahin775-Feb-04 6:23 
GeneralRe: removing registry garbages Pin
Heath Stewart5-Feb-04 6:38
protectorHeath Stewart5-Feb-04 6:38 
GeneralJava vs. C# means file watcher problems Pin
RB@Emphasys5-Feb-04 6:22
RB@Emphasys5-Feb-04 6:22 
GeneralRe: Java vs. C# means file watcher problems Pin
Heath Stewart5-Feb-04 6:47
protectorHeath Stewart5-Feb-04 6:47 
GeneralRe: Java vs. C# means file watcher problems Pin
RB@Emphasys5-Feb-04 7:08
RB@Emphasys5-Feb-04 7:08 
GeneralWeb Service error Pin
Peter Greenall5-Feb-04 5:55
Peter Greenall5-Feb-04 5:55 
GeneralImpersonation and FileSystemWatcher (threading?) Pin
Bill Dean5-Feb-04 5:47
Bill Dean5-Feb-04 5:47 
GeneralRe: Impersonation and FileSystemWatcher (threading?) Pin
John Fisher5-Feb-04 6:00
John Fisher5-Feb-04 6:00 
GeneralRe: Impersonation and FileSystemWatcher (threading?) Pin
Bill Dean5-Feb-04 6:08
Bill Dean5-Feb-04 6:08 
GeneralRe: Impersonation and FileSystemWatcher (threading?) Pin
Heath Stewart5-Feb-04 6:29
protectorHeath Stewart5-Feb-04 6:29 
GeneralRe: Impersonation and FileSystemWatcher (threading?) Pin
Bill Dean5-Feb-04 6:54
Bill Dean5-Feb-04 6:54 
GeneralRe: Impersonation and FileSystemWatcher (threading?) Pin
Heath Stewart5-Feb-04 8:51
protectorHeath Stewart5-Feb-04 8:51 
GeneralRe: Impersonation and FileSystemWatcher (threading?) Pin
Bill Dean5-Feb-04 9:26
Bill Dean5-Feb-04 9:26 
GeneralRe: Impersonation and FileSystemWatcher (threading?) Pin
Bill Dean5-Feb-04 16:00
Bill Dean5-Feb-04 16:00 
OK...

I could not get the AppDomain.SetThreadPrincipal to work, so I took another tact.



I created a class ImpersonatingLurker that derives from the System.IO.FileSystemWatcher. The only difference is that the first thing it does in it's constructor is the impersonation. This seems the get the principal set correctly for the thread then handles the FileSystemWatcher. The full class definition is:

public class ImpersonateingLurker :System.IO.FileSystemWatcher
{

     public ImpersonateingLurker(string strPath,string strFilter, System.Security.Principal.WindowsPrincipal  p)
		{
			Debug.WriteLine ("Lurker Constructor:"+p.Identity.Name );

			WindowsIdentity i = (WindowsIdentity) p.Identity;
			i.Impersonate ();

			this.Path = strPath;
			this.Filter = strFilter;
		}

}


Then in the OnStart event handler for the windows service we do:

int iToken;
LogonUser("user","domain","password",3,0,out iToken);

IntPtr token2 = new IntPtr(iToken);
WindowsIdentity wi  = new WindowsIdentity(token2);
WindowsPrincipal wp = new WindowsPrincipal (wi);

...

ImpersonateingLurker IL = new ImpersonateingLurker (PathOfInterest,Filter,wp);


And it all seems to work out...Thanks to Heath and John for their advice!

Bill
GeneralComboBox in Grid Pin
H r M5-Feb-04 5:03
H r M5-Feb-04 5:03 
GeneralRe: ComboBox in Grid Pin
John Fisher5-Feb-04 5:29
John Fisher5-Feb-04 5:29 
GeneralObtaining VBA stored BLOB Values from a Database Pin
Paul Kennedy5-Feb-04 5:01
Paul Kennedy5-Feb-04 5:01 
GeneralRe: Obtaining VBA stored BLOB Values from a Database Pin
John Fisher5-Feb-04 5:40
John Fisher5-Feb-04 5:40 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.