У меня есть несколько поддоменов, пытающихся использовать один поддомен для проверки подлинности с использованием проверки подлинности с помощью форм, работающей на Windows Server 2008 r2.
Все страницы аутентификации форм настроены на использование одного и того же имени, и на странице аутентификации cookie добавляется со следующим фрагментом:
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);
Когда я захожу на signon.mysite.com, свойства page.user.identity.isauthenticated и page.user.identity.name работают нормально. Когда я перехожу на subdomain.mysite.com, page.user.identity.isauthenticated возвращает true, но имя пусто.
Я попытался извлечь его из файла cookie, используя следующее, но оно также было пустым.
HttpCookie cookie = Request.Cookies[".ASPXAUTH"];
FormsAuthenticationTicket fat = FormsAuthentication.Decrypt(cookie.Value);
user2_lbl.Text = fat.Name;
При поиске проблемы я обнаружил, что некоторые люди говорят, что что-то должно быть добавлено в global.asax, а другие говорят, что в этом нет необходимости.
Цель состоит в том, чтобы иметь возможность войти в поддомен аутентификации и получить доступ к идентификатору пользователя с корневого сайта и других поддоменов. Ключи машины совпадают во всех файлах web.config, и AppSettings ["domainName"] в настоящее время имеет значение "mysite.com".
Кто-нибудь знает, что мешает мне получить доступ к пользовательской информации?