web-dev-qa-db-fra.com

System.Web.HttpContext.Current.User.Identity.Name contre System.Environment.UserName dans ASP.NET

Quelle est la différence entre System.Web.HttpContext.Current.User.Identity.Name et System.Environment.UserName dans le cadre d'un projet d'application Web ASP.Net?

Voici le code de ce que j'essaie de faire:

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

S'ils sont fonctionnellement identiques, lequel est meilleur en termes de performances?

Il s'agit d'une application Web C # 4.0/ASP.Net qui verra une utilisation modérée en interne dans l'organisation. Merci pour vos réponses.

20
FMFF

System.Environment.UserName renvoie l'identité sous laquelle le pool d'applications qui héberge votre application Web s'exécute. Si vous utilisez l'authentification et l'emprunt d'identité Windows, ce sera le nom réel de l'utilisateur, mais dans tous les cas, il vaut mieux utiliser les informations fournies par le contexte HTTP. Aucune performance n'est atteinte dans les deux cas.

13
kprobst

La description

System.Web.HttpContext.Current.User.Identity.Name

Obtient ou définit les informations de sécurité pour la demande HTTP actuelle. (Le nom de l'utilisateur connecté sur votre site Web)

System.Environment.UserName

Obtient le nom d'utilisateur de la personne actuellement connectée au système d'exploitation Windows.

Plus d'information

34
dknaack