Request.ServerVariables(« LOGON_USER ») retourne une chaîne vide dans ASP.NET
Cet article fournit des solutions au problème où la Request.ServerVariables("LOGON_USER")
variable retourne une chaîne vide dans ASP.NET.
Version d’origine du produit : ASP.NET
Numéro de la base de connaissances d’origine : 306359
Symptômes
Si vous essayez d’accéder à la Request.ServerVariables("LOGON_USER")
variable dans ASP.NET, une chaîne vide est retournée.
Si vous utilisez Microsoft Visual C# .NET, la syntaxe suivante accède à cette variable :
Request.ServerVariables["LOGON_USER"]
Cause
Ce problème se produit parce que les variables liées à l’authentification dans la ServerVariables
collection ne sont pas renseignées si vous utilisez la sécurité d’accès anonyme pour accéder à la page .aspx. Ce problème peut également se produire si vous accordez à l’utilisateur anonyme l’accès dans la <authorization>
section du fichier web.config .
Résolution
Pour remplir la LOGON_USER
variable lorsque vous utilisez un mode d’authentification autre que None
, vous pouvez refuser l’accès à l’utilisateur anonyme dans la <authorization>
section du fichier web.config . Pour refuser l’accès à l’utilisateur anonyme dans la <authorization>
section, procédez comme suit :
Remplacez le mode d’authentification dans le fichier web.config par autre chose que
None
. Par exemple, l’entrée suivante dans le fichier web.config définit le mode d’authentification sur Authentification basée sur les formulaires :<authentication mode="Forms" />
Pour refuser l’accès à l’utilisateur anonyme dans le fichier web.config , utilisez la syntaxe suivante :
<authorization> <deny users = "?" /> <!-- This denies access to the anonymous user --> <allow users ="*" /> <!-- This allows access to all users --> </authorization>
Si vous utilisez Authentification Windows, vous pouvez également suivre les étapes suivantes pour résoudre ce problème :
Modifiez le mode d’authentification dans le fichier web.config comme
Windows
suit :<authentication mode="Windows" />
Dans le Gestionnaire des services Internet, cliquez avec le bouton droit sur le fichier .aspx ou le dossier Projet web , puis sélectionnez Propriétés.
Si vous sélectionnez Propriétés pour le dossier Projet web , sélectionnez l’onglet Sécurité du répertoire . Si vous sélectionnez Propriétés pour le fichier .aspx, sélectionnez l’onglet Sécurité du fichier.
Sous Accès anonyme et contrôle d’authentification, sélectionnez Modifier.
Dans la boîte de dialogue Méthodes d’authentification, décochez la zone Accès anonyme case activée, puis sélectionnez la zone de case activée De base, Digest ou Intégrée (défi/réponse NT).
Sélectionnez OK pour fermer les deux boîtes de dialogue.
Statut
Ce comportement est inhérent au produit.
Plus d’informations
ASP.NET fournit de nouveaux modes d’authentification et schémas d’autorisation, que vous pouvez configurer dans les fichiers .config. Pour cette raison, la modification des modes d’authentification dans IIS seul peut ne pas toujours produire les résultats souhaités. Par conséquent, vous devez également prendre en compte les paramètres de sécurité dans les fichiers .config.
Remarque
Lorsque vous activez l’authentification anonyme conjointement avec Authentification Windows ou si vous accordez l’accès à l’utilisateur anonyme dans la <authorization>
section pendant que vous utilisez un mode d’authentification autre que None
, d’autres variables de serveur telles que AUTH_USER
et REMOTE_USER
(ainsi que la HttpContext.Current.User.Identity.Name
propriété ) retournent également une chaîne vide. Vous pouvez utiliser l’une des résolutions mentionnées ci-dessus pour remplir ces variables.
Dans ASP.NET, vous pouvez également utiliser la IsAuthenticated
propriété de l’objet Request
pour déterminer si la sécurité accès anonyme est utilisée. IsAuthenticated
retourne false si l’accès anonyme est activé et retourne true si vous utilisez un autre moyen d’authentification tel que Forms
, Passport
, Integrated (NT Challenge/Response)
ou Basic
.
References
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour