Request. ServerVariables ("LOGON_USER") renvoie une chaîne vide dans ASP.NET

Cet article fournit des solutions pour le problème où la Request.ServerVariables("LOGON_USER") variable renvoie une chaîne vide dans ASP.net.

Version du produit d’origine :   ASP.NET
Numéro de la base de connaissances initiale :   306359

Symptômes

Si vous essayez d’accéder à la Request.ServerVariables("LOGON_USER") variable dans ASP.net, une chaîne vide est renvoyé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 car les variables liées à l’authentification dans la ServerVariables collection ne sont pas remplies si vous utilisez la sécurité de l’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 à 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 :

  1. Remplacez le mode d’authentification dans le fichier web.config par une valeur autre que None . Par exemple, l’entrée suivante dans le fichier web.config définit le mode d’authentification sur l’authentification basée sur les formulaires :

    <authentication mode="Forms" />
    
  2. 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 l’authentification Windows, vous pouvez également utiliser les étapes suivantes pour résoudre ce problème :

  1. Modifiez le mode d’authentification dans web.config le fichierweb.configWindows comme suit :

    <authentication mode="Windows" />
    
  2. Dans le Gestionnaire des services Internet, cliquez avec le bouton droit sur le fichier. aspx ou sur le dossier du projet Web , puis sélectionnez Propriétés.

  3. Si vous sélectionnez Propriétés pour le dossier du projet Web , sélectionnez l’onglet sécurité de répertoire . Si vous sélectionnez les Propriétés du fichier. aspx, sélectionnez l’onglet sécurité du fichier .

  4. Sous accès anonyme et contrôle d’authentification, sélectionnez modifier.

  5. Dans la boîte de dialogue méthodes d’authentification , désactivez la case à cocher accès anonyme , puis activez la case à cocher de base, Digestou intégrée (stimulation/réponse de Windows NT) .

  6. 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 de nouveaux modèles d’autorisation que vous pouvez configurer dans les fichiers. config. Pour cette raison, il se peut que la modification des modes d’authentification dans les services Internet (IIS) ne génère pas toujours les résultats souhaités. Par conséquent, vous devez également prendre en compte les paramètres de sécurité dans les fichiers. config.

Notes

Lorsque vous activez l’authentification anonyme conjointement à l’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 , les autres variables de serveur telles que AUTH_USER et REMOTE_USER (ainsi que la HttpContext.Current.User.Identity.Name propriété) renvoient également une chaîne vide. Vous pouvez utiliser l’une des résolutions mentionnées ci-dessus pour renseigner ces variables.

Dans ASP.NET, vous pouvez également utiliser la IsAuthenticated propriété de l' Request objet pour déterminer si la sécurité de l’accès anonyme est utilisée. IsAuthenticatedrenvoie false si l’accès anonyme est activé et renvoie la valeur true si vous utilisez d’autres moyens d’authentification, tels que Forms ,, Passport Integrated (NT Challenge/Response) ou Basic .

Références