Groups | Blog | Home
all groups > asp.net > february 2008 >

asp.net : Copy Credentials for a worker thread


maa
2/9/2008 4:46:01 PM
In my web app I am creating threads to do work. I want to give the same
rights as my main asp.net thread. The default is to give lesser rights so
when I access the db I get a log on failure with a trusted connection or a
user name/password.
What is the std way to copy credentials in asp.net?

Thanks,
Phil Johnson
2/10/2008 1:51:01 AM
Go to this article...

http://msdn2.microsoft.com/en-us/library/ms998258.aspx#pagguidelines0001_impersonationdelegation

and go to a section about two thirds down called ...

Avoid Losing Impersonation Tokens

I think it is exactly what you are after.

Hope that helps.

--
Regards,

Phillip Johnson (MCSD For .NET)
PJ Software Development
www.pjsoftwaredevelopment.com


[quoted text, click to view]
S. Justin Gengo
2/10/2008 7:12:04 AM
maa,

I think this will take care of what you're looking for. It's an excerpt from
the MSDN article found here:
http://support.microsoft.com/kb/306158


Impersonate the Authenticating User in Code
To impersonate the authenticating user (User.Identity) only when you run a
particular section of code, you can use the code to follow. This method
requires that the authenticating user identity is of type WindowsIdentity.

Visual Basic .NET
Dim impersonationContext As
System.Security.Principal.WindowsImpersonationContext
Dim currentWindowsIdentity As System.Security.Principal.WindowsIdentity

currentWindowsIdentity = CType(User.Identity,
System.Security.Principal.WindowsIdentity)
impersonationContext = currentWindowsIdentity.Impersonate()

'Insert your code that runs under the security context of the authenticating
user here.

impersonationContext.Undo()

Visual C# .NET
System.Security.Principal.WindowsImpersonationContext impersonationContext;
impersonationContext =
((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();

//Insert your code that runs under the security context of the
authenticating user here.

impersonationContext.Undo();


Regards,

S. Justin Gengo, MCP

Free code and component libraries at:
http://www.aboutfortunate.com


[quoted text, click to view]
AddThis Social Bookmark Button