Проблема истечения срока действия файла cookie для проверки подлинности .Net Forms для единого входа - PullRequest
1 голос
/ 05 августа 2009

Позвольте мне немного описать мои настройки, прежде чем я начну решать проблему. У меня есть два веб-сервера (www.mydomain.com и www2.mydomain.com), использующие проверку подлинности с помощью форм. На каждом веб-сервере у меня есть основное приложение для аутентификации и множество подпрограмм. Это выглядит примерно так:

www.mydomain.com

|__MainApp (.Net 2.0)
    |__SubApp1 (.Net 1.1)
    |__SubApp2 (.Net 2.0)
    |__SubApp3 (.Net 2.0)

www2.mydomain.com

|__MainApp (.Net 2.0)
    |__SubApp1 (.Net 1.1)
    |__SubApp2 (.Net 2.0)
    |__SubApp3 (.Net 2.0)

Как видите, на одном сервере я запускаю набор приложений .Net 1.1 и 2.0. Сейчас я пытаюсь найти решение с единым входом (SSO), которое работает с этой настройкой, и мне это частично удалось. Поскольку атрибут домена в теге несовместим с .Net 1.1 (из-за этого приложения генерируют исключение), я решил программно установить домен сгенерированного cookie-файла проверки подлинности форм. Это работает нормально, и я могу перемещаться между двумя серверами без необходимости повторного входа. Проблема возникает, когда сервер пытается переиздать / обновить файл cookie и обновить срок его действия с включенным параметром slideExpiration. Сгенерированный мной файл cookie создается с «mydomain.com» в качестве домена, но когда сервер пытается переиздать его с новым сроком действия, он не может его найти и генерирует новый файл cookie с «www.mydomain.com» как домен.

В любом случае, нужно ли серверу правильно переиздавать исходный файл cookie с пользовательским доменом?

Ответы [ 3 ]

0 голосов
/ 06 августа 2009

Если бы мы пошли по этому пути, это было бы скорее долгосрочным решением. В краткосрочной перспективе я просто надеялся узнать, знает ли кто-нибудь, почему среда не может найти и переиздать существующий файл cookie.

0 голосов
/ 09 августа 2009

Моим решением было добавить атрибут домена проверки подлинности с помощью форм в глобальный файл Web.config для платформы .Net 2.0 (C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ Web.config). Это не решает проблему для моих приложений .Net 1.1, но большинство моих приложений работают на 2.0. Я, вероятно, просто буду использовать HTTPModule для обработки скользящего срока действия для приложений .Net 1.1.

0 голосов
/ 06 августа 2009

У нас есть почти идентичные настройки (два веб-сервера, набор приложений 1.1, 2.0 и 3.5) и SSO с использованием аутентификации форм. И у нас это работает с выдохом без проблем.

Единственное отличие состоит в том, что два наших веб-сервера настроены как веб-ферма (с использованием MS Clustering на сервере 2k3, если я правильно помню). Это означает, что обе машины назначены одному домену. Можете ли вы переключить два сервера на веб-ферму?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...