Проверка подлинности с помощью форм на поддоменах в локальном IIS - PullRequest
6 голосов
/ 26 ноября 2011

Я знаю, что куки могут быть общими для нескольких поддоменов, используя параметр

<forms 
    name=".ASPXAUTH" 
    loginUrl="Login/" 
    protection="Validation" 
    timeout="120" 
    path="/"     
    domain=".mydomain.com"/>

в Web.config.Но как тиражировать то же самое на локальной машине.Я использую Windows 7 и IIS 7 на моем ноутбуке.Поэтому у меня есть сайты localhost.users / для моего реального сайта users.mysite.com localhost.host/ для host.mysite.com и аналогичные.

Ответы [ 2 ]

9 голосов
/ 26 ноября 2011

localhost.users и localhost.host является междоменной. Файлы cookie не могут быть разделены между доменами.

Вы можете настроить его так, чтобы субдомен отличался, но корневой домен оставался прежним:

  • users.localhost
  • host.localhost

Теперь установите домен cookie в вашем файле web.config на localhost:

domain=".localhost"

и в ваш файл c:\Windows\System32\drivers\etc\hosts добавьте следующие 2 записи:

127.0.0.1 users.localhost
127.0.0.1 host.localhost

Теперь вы сможете успешно обмениваться файлом cookie аутентификации между users.localhost и host.localhost.

Ах, и не забудьте добавить в свой автоматизированный процесс сборки шаг, который преобразует значение web.config в правильный корневой домен перед отправкой в ​​производство.

3 голосов
/ 27 ноября 2013

Это напоминание для всех, кто работает в Framework 4.5 и пытается поделиться токеном с фреймворками 4 и ниже. Обратите внимание, что это приведет к тому, что вы не получите файл cookie авторизации ни в одном из приложений 4 и ниже.то есть: если в вашем web.config есть:

<httpRuntime maxRequestLength="80480" targetFramework="4.5" />

Вы можете заставить его работать, удалив атрибут targetFramework="4.5", чтобы заставить его работать, хотя я не знаю, есть ли какая-либо сторонаЭффекты при этом:

<httpRuntime maxRequestLength="80480" />
...