Ошибка cookie cookie ASP.NET между двумя сайтами

У меня есть два веб-сайта ASP.NET, работающих в IIS Express, как localhost с разными портами. Я использую FormsAuthentication для запоминания логинов через файлы cookie. Однако, когда я вхожу в систему или выхожу из одного сайта, это влияет на другой сайт, поэтому они, похоже, используют один и тот же файл cookie.

Это обычная проблема, или я могу настроить что-то, чтобы этого избежать?

+1
17 мар. '17 в 13:28
источник поделиться
4 ответа

Это, скорее всего, связано с сайтами, имеющими одно и то же имя файла cookie.

Вы можете настроить его в файле web.config:

<authentication mode="Forms"> <forms name=".CookieName" loginUrl="LoginPage.aspx"/> </authentication>

Источник: Могу ли я изменить имя файла cookie FormsAuthentication?

+3
17 мар. '17 в 13:32
источник

Являются ли два сайта в одном домене? Возможно, вам нужно указать путь к файлу cookie.

https://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.formscookiepath(v=vs.110).aspx

Обратите внимание, что изменение имени файла cookie не препятствует отправке файла cookie в неправильное приложение.

+2
17 мар. '17 в 13:34
источник

Это обычная проблема, так как куки присваиваются именам хостов. Вы должны указывать разные имена для файлов cookie AUTH на свои сайты. Проверьте, как это сделать: могу ли я изменить имя файла cookie FormsAuthentication? ,

+1
17 мар. '17 в 13:31
источник

http файлы cookie не выделены для данного порта. Являются ли HTTP файлы cookie конкретными?

браузеры будут отправлять файлы cookie на основе домена и не учитывать порт.

По историческим причинам файлы cookie содержат ряд угроз безопасности и конфиденциальности. Например, сервер может указывать, что данный куки файл предназначен для "защищенных" соединений, но атрибут Secure не обеспечивает целостности в присутствии активного сетевого злоумышленника. Аналогичным образом, файлы cookie для данного хоста распределяются между всеми портами этого хоста, хотя обычная политика "одного происхождения", используемая веб-браузерами, изолирует контент, полученный через разные порты.

Если вы хотите ограничить этот файл cookie приложением в том же домене, вам нужно установить cookie для виртуального каталога. Что-то вроде cookie.domain = 'yourdomain/appRootUrl/'.

0
17 мар. '17 в 13:35
источник

Посмотрите другие вопросы по меткам или Задайте вопрос