#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 или указав разные ключи компьютера?