System.Web.HttpContext.Current.User.Identity.Name Vs System.Environment.UserName in ASP.NET

What is the difference between System.Web.HttpContext.Current.User.Identity.Name and System.Environment.UserName in the context of a ASP.Net Web Application Project?

Here’s the code of what I’m trying to do:

Database myDB = DatabaseFactory.CreateDatabase();
bool IsAuthUser = myDB.ExecuteScalar("procIsAuthorizedUser", System.Environment.UserName);

If they are functionally identical, which is better in terms of performance?

This is a C# 4.0/ASP.Net web application which will see moderate usage internally in the organization. Thank you for the answers.


Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1



Gets or sets security information for the current HTTP request. (The Name of the Logged in user on your Website)


Gets the user name of the person who is currently logged on to the Windows operating system.

More Information

Method 2

System.Environment.UserName returns the identity under which the app pool that hosts your web app is running. If you’re using Windows authentication and impersonation then it will be the actual user’s name, however in all cases you’re better off using the information provided by the HTTP context. There is no performance hit either way.

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Notify of

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x