Page.User.Identity.Name is blank on pages of subdomains

Posted by sparks on Stack Overflow See other posts from Stack Overflow or by sparks
Published on 2010-04-19T14:59:12Z Indexed on 2010/04/19 15:03 UTC
Read the original article Hit count: 564

Filed under:
|
|
|

I have multiple subdomains trying to use a single subdomain for authentiction using forms authentication all running on windows server 2008 r2.

All of the forms authentication pages are setup to use the same name, and on the authentication page the cookie is added with the following snippet:

 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);

When I am logged in to signon.mysite.com the page.user.identity.isauthenticated and page.user.identity.name properties both work fine. When I navigate to subdomain.mysite.com the page.user.identity.isauthenticated returns true, bue the name is empty.

I tried to retrieve it from the cookie using the following, but it also was blank.

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

When googling the issue I found some people saying something must be added to global.asax and other saying it wasn't necessary.

The goal is to be able to login on the authentication subdomain and have the user identity accessible from the root site and other subdomains. Machine keys match in all web.config, and the AppSettings["domainName"] is set to "mysite.com" currently.

Does anyone know what is preventing me from accessing the user information?

© Stack Overflow or respective owner

Related posts about ASP.NET

Related posts about c#