HttpContext.Actuel.L'utilisateur est nulle, même si l'Authentification Windows est sur
Dans IIS7 sous Windows Server 2008, j'ai un répertoire virtuel avec anonyme, l'accès et de l'authentification Windows sur. Dans mon web.config, j'ai:
<authentication mode="Windows"/>
<authorization>
<allow roles="MYGROUP"/>
<deny users="*"/>
</authorization>
et
<system.webServer>
<!-- IIS7 security settings -->
<security>
<authorization>
<add accessType="Deny" users="*"/>
<add accessType="Allow" roles="MYGROUP"/>
</authorization>
</security>
</system.webServer>
Mais lorsque j'ai accès par défaut.aspx partir de IE et de définir un point d'arrêt dans le Mondial.asax.vb Application_AuthenticateRequest(), j'obtiens une valeur null HttpContext.Actuel.L'utilisateur où je m'attends à ce que ma propre identité. C'est presque comme si l'Accès Anonyme est activé?
Que puis-je faire pour résoudre ce problème? Tout semble fonctionner dans IIS6.
- BTW, j'ai regardé ici: codesnip.net/iis7-integrated-windows-authentication-win-2008 -- et tout semble bon en fonction de cela.
- Avez-vous jamais trouver une solution à cela? Ayant le même problème, et c'est la question la plus proche je peux trouver sur le sujet.
- Non, il a quelque chose à voir avec la nouvelle façon IIS fonctionne, et qu'il peut passer le contrôle de votre ASP.NET programme pour faire son authentification. J'ai toujours besoin de quelqu'un pour me l'expliquer plus en termes simples, je suppose.
Vous devez vous connecter pour publier un commentaire.
La réponse à de déplacement de la Application de la Piscine au classique est juste retarder le problème.
Au lieu de laisser l'application de la piscine seul et passer votre authentifier vérifier à partir de
Application_AuthenticateRequest()
, à la fonction suivante dans le pipeline:Alors intégré Application de la Piscine a terminé l'authentification windows vous permettent de ne pas recevoir de
null
deHttpContext.Current.User
.Le pipeline peut être trouvé ici (lien fourni par CarlosAg).
Une visualisation de la canalisation peut être trouvé sur le site web asp message de cycle de vie page. Dans la section du contrôleur de la caisse de la deux cases vertes de l'Authentification "filtres" et "Autorisation de filtres". Ce sont les domaines qui vous de jouer avec.
II7 a l'authentification intégrée. Vous pouvez la définir à l'ancien type par la modification de l'Application de la Piscine au classique dans les réglages de base dans IIS.
*Attention c'est juste une explication et un exemple, vous souhaiterez peut-être utiliser l'authentification intégrée et de faire quelque chose de différent.
L'accès anonyme doit être sur si vous n'utilisez pas le protocole ssl ou quelque chose de votre propre sécurité.
Avec IIS 7 et asp.net 4.0 l'utilisateur était encore null dans Application_AuthenticateRequest() (object sender, EventArgs e). J'ai dû placer toutes logique d'authentification au sein de la Application_PostAuthenticateRequest() (object sender, EventArgs e). Vous pouvez voir un exemple ici contexte de l'utilisateur-est-nul-en-application-authenticaterequest-via-windows-auth-en-asp