J'essaie de créer un filtre d'action simple pour mon site MVC qui vérifie l'utilisateur Windows actuel par rapport à l'accès autorisé au site. Pour une raison quelconque, l'objet filterContext.HttpContext.User.Identity
est toujours défini sur anonyme sans nom d'utilisateur. J'ai essayé de l'attraper à différentes étapes (OnAuthenticate et OnAuthorize), mais c'est toujours anonyme.Windows Identité toujours anonyme dans le pipeline de demandes ASP.NET
J'ai actuellement anonyme authentification Windows et activé dans IIS (en fait suivi this example pour configurer la fonctionnalité Windows Auth), et je le bloc suivant dans le nœud system.web
de mon web.config:
<authentication mode="Windows" />
<authorization>
<allow users="*" />
<deny users="?" />
</authorization>
Cependant, pour quelque raison que ce soit, l'identité est toujours anonyme sans nom d'utilisateur.
Je dois manquer quelque chose ici. Avec Windows Auth défini dans IIS, je suis toujours invité pour le nom d'utilisateur/mot de passe combo (qui échoue réellement avec l'erreur HTTP401.1 0xc000006d
, mais je pense que cela est dû au fait que j'ai une configuration d'en-tête d'hôte personnalisée pour le développement). J'ai aussi lu quelques articles qui suggèrent que c'est parce que mon site est déterminé à être dans la zone internet et les réponses indiquent toujours d'ajouter le site à la zone intranet dans Internet Explorer. Cela semble être une solution de fortune, et non la solution réelle.
Idéalement, je voudrais avoir les éléments suivants:
- utilisateur accède à mon site
- Dans les coulisses, leur nom d'utilisateur Windows est repris, et authentifiées contre les utilisateurs autorisés gérés par l'application
- utilisateur authentifié, chargement de la page, l'utilisateur est pas plus sage qu'ils authentifiées
Que dois-je faire pour y parvenir?
Merci d'avance pour toute aide. S'il vous plaît laissez-moi savoir si je peux fournir plus de contexte.
Edit: avez oublié d'ajouter que je suis en cela sur Windows 7 SP1, IIS 7.5
Vous devez remplir la connexion sans un 401 avant qu'une identité Windows ne soit définie. Sinon, votre identité sera anonyme. En ce qui concerne la zone intranet, je n'ai jamais eu le problème. Il peut y avoir des problèmes lors de l'authentification en utilisant localhost. –