Я хочу разместить несколько сайтов под одним доменом. Но в настоящее время я работаю на локальном хосте, поэтому я добавил эти 2 строки в мой и т.д./файл хостов:Доступ к файлам cookie в поддоменах
127.0.0.1 something.com
127.0.0.1 orders.something.com
Есть 2 приложений, размещенных в IIS. Просмотр можно использовать с помощью: orders.something.com/OrdersSSO
и других можно просмотреть, используя something.com/SSOSample/
.
Я создал куки аутентификации, используя этот код в something.com/SSOSample/
:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
"abc",
DateTime.Now,
DateTime.Now.AddMinutes(30), // value of time out property
true, // Value of IsPersistent property
String.Empty,
FormsAuthentication.FormsCookiePath);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie authCookie = new HttpCookie(
FormsAuthentication.FormsCookieName,
encryptedTicket);
Response.Cookies.Add(authCookie);
Так что я вошел в этом приложении. Однако, когда я просматриваю orders.something.com/OrdersSSO, я не получаю свой файл cookie для проверки подлинности.
Это моя форма раздела в web.config:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" enableCrossAppRedirects="true" timeout="2880" domain=".something.com" />
</authentication>
Что мне не хватает?
Пожалуйста, прочтите мой web.config. У меня это уже есть. – Jaggu
Вам все еще нужно authCookie.Domain = ".something.com", потому что вы настраиваете cookie вручную. Ваш атрибут домена web.config будет использоваться, когда ASP.NET автоматически расширяет срок действия файла cookie. –