http://msdn.microsoft.com/en-us/library/ff647405.aspx[
^]
1.Check that your ASP.NET application is not configured for impersonation by ensuring that impersonate is set to false on the <identity> element in the Web.config file.
...
<system.web>
...
<authentication mode="Windows"/>
<identity impersonate="false"/>
...
</system.web>
...
2.Obtain the authenticated user's Windows token.
IIdentity WinId= HttpContext.Current.User.Identity;
WindowsIdentity wi = (WindowsIdentity)WinId;
3.Use the authenticated user's Windows token to temporarily impersonate the original user and remove the impersonation token from the current thread when you are finished impersonating.
WindowsImpersonationContext wic = wi.Impersonate();
try
{
}
catch
{
}
finally
{
wic.Undo();
}
This article will help you to solve this problem.