J'ai une application intranet asp.net utilisant l'authentification Windows. J'ai créé l'application il y a des années avec VS 2005, et le bit d'authentification Windows fonctionnait parfaitement. Mon web.config a le suivant (à l'intérieur de configuration -> élément system.web):HttpContext.Current.User non rempli avec l'authentification Windows activée
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
je teste ce dans Firefox pour confirmer que les informations d'identification sont nécessaires, et en fait je suis invité à entrer mes lettres de créance du réseau lors de la première accéder au site, et je suis refusé si elles sont invalides.
Toutefois, lorsque j'essaie d'accéder à HttpContext.Current.User.Identity, l'objet possède des chaînes vides pour Name et AuthenticationType et Authenticated = false. Je pensais que je devrais activer WindowsTokenRoleProvider après avoir regardé les interwebs, et cela n'a rien changé.
<roleManager defaultProvider="WindowsProvider" enabled="true" cacheRolesInCookie="false">
<providers>
<clear/>
<add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider"/>
</providers>
</roleManager>
Deux choses que j'ai fait depuis la dernière fois que je l'ai vu travailler sont mise à niveau du projet VS 2008 par l'assistant de conversion, et je mets aussi pendant plusieurs mois, alors que mes collègues peuvent J'ai travaillé dessus ici ou là. J'étais assez sûr que la seule chose qui affecte mon User.Identity sont les valeurs dans le web.config mentionné ci-dessus, mais apparemment je fais quelque chose de mal. Quelqu'un d'autre rencontre un problème similaire ou voit quelque chose que je fais mal? Merci.
Avez-vous testé dans IE? –
Oui ... testé aussi dans IE. La seule raison pour laquelle j'ai mentionné Firefox est que IE transmet automatiquement vos informations d'identification alors que FF vous oblige à vous connecter via l'invite. C'est comme ça que je sais que je bloque l'accès anonyme, mais je reçois toujours des informations vides sur User.Identity – Rich
Quand vous dites "quand j'essaie d'accéder à HttpContext.Current.User.Identity", à quel point dans le cycle de vie de la page sont tu fais ça? – Bullines