2014-02-05 2 views

답변

0

사용 HttpContext.Current.User.Identity

WindowsIdentity wId = (WindowsIdentity)HttpContext.Current.User.Identity; 
WindowsIdentity wIdb4 = WindowsIdentity.GetCurrent(); 
string name = wIdb4.Name; 
Response.Write("Before impersonation"+name +"<br>");// <-- Writes ASPNET Account 


//Till this line,code is executed in the context of worker process 
WindowsImpersonationContext wIdCon = wId.Impersonate(); 
WindowsIdentity wIdafter = WindowsIdentity.GetCurrent(); 
name = wIdafter.Name; 
Response.Write("After Impersonation " + name + "<br>");// <-- writes Logged in user 

//Run in the context of logged authenticated user, do your //operations that require impersonation 

wIdCon.Undo(); 
WindowsIdentity wIdafterUndo = WindowsIdentity.GetCurrent(); 
name = wIdafterUndo.Name; 

Response.Write("After undo Impersonation " + name + "<br>"); 

OUTPUT 
Before impersonation SERVER\ASPNET 
After Impersonation TestAccount 
After undo Impersonation SERVER\ASPNET 
관련 문제