IIS генерирует тот же сеанс.Идентификатор сеанса

#asp.net #iis #session #web-applications #authentication

#asp.net #iis #сеанс #веб-приложения #аутентификация

Вопрос:

Я развернул два веб-приложения на моем IIS7.

Проблема в том, что IIS генерирует тот же сеанс.Идентификатор сеанса, если я запрашиваю оба приложения, используя один и тот же браузер (разные вкладки).

Это вызывает некоторую проблему с ASP.Сетевая аутентификация пользователя, это несколько перекрывается друг с другом и флагом «User.Идентификатор.IsAuthenticated» возвращает false всякий раз, когда пользователь входит в систему на другом сайте. Это работает нормально, пока пользователь работает на одном из сайтов.

Пожалуйста, помогите мне, кажется, я не могу найти причину этого, я имею в виду, что сеанс зависит от конкретного приложения, так почему SessionID из одного веб-приложения конфликтует с другим.

Спасибо

Ответ №1:

Они выполняются в одном и том же пуле приложений. Просто разделите пулы приложений.


Проблема в том, что ваш браузер обрабатывает эти приложения одинаково. Сеанс в ASP.NET реализуется с помощью сессионного cookie. У них должны быть разные имена веб-сайтов, чтобы они не использовали один и тот же сеанс.


Обновить

Вот как работает файл cookie сеанса.

Но одним из решений является доступ к ним как mysite.com/1 и mysite.com/2 . Я считаю, что это также должно сработать.

Комментарии:

1. Как я обновил, у вас должны быть разные названия веб-сайтов для них. Доступ к ним с использованием разных имен веб-сайтов, например app1.mysite.com и app2.mysite.com

2. Название веб-сайта совпадает с полным другим доменным именем? как www.x.com и www.x.com/2 не будет работать?

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

4. Это сработало, я попробовал один с localhost, а другой с my-pc. Есть ли способ, которым я могу избежать этого, я не хочу менять имя домена или добавлять поддомен. Я пробовал создавать разные пулы приложений, но это не помогло.

5. Вот как работает сеанс в ASP.NET или любая другая веб-технология. Но настройка псевдонимов проста, если это интрасеть. Также для Интернета это должно быть довольно просто. Но посмотрите мое новое обновление.

Ответ №2:

Вы проверили пулы приложений, если вы хотите изолировать веб-приложение, вы должны определить разные пулы приложений.

Ответ №3:

Выполняется ли каждое приложение в отдельном приложении IIS? Если это так, то сеанс будет отдельным, поскольку область действия сеанса ограничена AppDomain. Если они находятся в одном приложении IIS, они загружаются в один и тот же домен приложения и будут совместно использовать сеанс.

В том же сеансе браузера (независимо от использования вкладок) будет отправлен тот же файл cookie сеанса.

Комментарии:

1. Привет, у меня возникла проблема, потому что оба веб-сайта определены в одном приложении IIS. Возможно ли изолировать сеансы обоих веб-сайтов, возможно, указав другое имя сеанса в web.config или указав разные ключи компьютера?