2010-04-19 3 views
1

Plusieurs sous-domaines tentent d'utiliser un sous-domaine unique pour l'authentification à l'aide de l'authentification par formulaires, tous s'exécutant sur Windows Server 2008 R2.Page.User.Identity.Name est vide sur les pages des sous-domaines

Toutes les pages d'authentification des formulaires sont configurés pour utiliser le même nom, et sur la page d'authentification du cookie est ajouté à l'extrait suivant:

FormsAuthentication.SetAuthCookie(txtUserName.Text, false); 
System.Web.HttpCookie MyCookie = System.Web.Security.FormsAuthentication.GetAuthCookie(User.Identity.Name.ToString(), false); 
MyCookie.Domain = ConfigurationManager.AppSettings["domainName"]; 
Response.AppendCookie(MyCookie); 

Quand je suis connecté à signon.mysite.com Les propriétés page.user.identity.isauthenticated et page.user.identity.name fonctionnent toutes les deux correctement. Lorsque je navigue sur subdomain.mysite.com, page.user.identity.isauthenticated renvoie true, mais le nom est vide.

J'ai essayé de le récupérer du cookie en utilisant ce qui suit, mais il était également vide.

HttpCookie cookie = Request.Cookies[".ASPXAUTH"]; 
FormsAuthenticationTicket fat = FormsAuthentication.Decrypt(cookie.Value); 
user2_lbl.Text = fat.Name; 

Quand googler la question que je trouve des gens qui disent quelque chose doit être ajouté à Global.asax et d'autres disent qu'il n'a pas été nécessaire.

L'objectif est de pouvoir se connecter sur le sous-domaine d'authentification et d'avoir l'identité de l'utilisateur accessible depuis le site racine et d'autres sous-domaines. Les clés machine correspondent dans tous les fichiers web.config et les AppSettings ["domainName"] sont actuellement définis sur "mysite.com".

Est-ce que quelqu'un sait ce qui m'empêche d'accéder aux informations de l'utilisateur?

+1

Ceci devrait affecter spécifiquement l'objet Identity, mais vos web.configs sur tous les sites ont-ils enableCrossAppRedirects = "true" dans la balise formsauthentication? –

Répondre

4

Remplacez "mysite.com" par ".mysite.com" (notez l'en-tête ".").

Cela indiquera au navigateur que le cookie est également valide pour les sous-domaines.

+0

Vérifiez votre mise en cache, en particulier assurez-vous qu'aucun vieux cookies ont été laissés pour compte. C'est votre problème, c'est sûr. Ce n'est pas spécifique à un PC. – jvenema

Questions connexes