Одноразовое копирование данных сеанса из классического ASP в ASP.Net

StackOverflow https://stackoverflow.com/questions/1526844

Вопрос

У нас есть обширный классический сайт ASP, и мы хотим перейти на ASP .Net (скорее всего, на последнюю версию).Очевидно, что обновление всех страниц одновременно было бы огромной задачей, поэтому сначала мы собираемся писать новые страницы (и перезаписывать страницы) в ASP .Net.

Для этого есть два препятствия:

  1. Я понятия не имею, как получить доступ к классическим данным сеанса ASP в ASP.Net.Это нужно будет настроить только один раз, поскольку оно никогда не изменяется ни на одной странице, кроме страницы входа в систему.Я бы предпочел внести минимальные изменения в классическую страницу входа ASP, но это лишь небольшое предпочтение.

  2. Сеансы ASP и ASP .Net должны будут истечь одновременно, чтобы сохранить разницу версий.

Может ли кто-нибудь предложить какую-либо помощь, пожалуйста?

Заранее спасибо.

Это было полезно?

Решение

Перед нами стояла одна и та же задача (не веселая).Поскольку сеансы Asp.Net и сеансы Asp не могут быть общими, мы использовали комбинацию методов, каждый из которых соответствует ситуации.

  • В некоторых случаях мы использовали файлы cookie вместо сеанса.
  • В других случаях мы настраиваем формы автоматической публикации, так что если информация о сеансе пользователя была установлена ​​на классической странице ASP, после установки информации о сеансе мы перенаправлялись на страницу Asp.Net, которая считывала параметры строки запроса и использовала их для установки те же переменные сеанса для Asp.Net.Затем, как только страница Asp.Net установила те же переменные, эта страница выполнила перенаправление на любую страницу, на которую ранее указывала исходная страница входа.То же самое сработало и в обратном порядке.

Итак, во втором сценарии пример потока изменился бы с:

Пользователь пытается получить доступ к какой -то странице защищенного контента -> перенаправлен на страницу входа в систему -> rogn in -> Информация о сеансе на основе успеха входа в систему -> перенаправлен на страницу контента.

к

Пользователь пытается получить доступ к какой -то странице защищенного контента -> Перенаправлено на страницу входа в систему -> rogn in -> Информация о сеансе на основе успеха входа в систему -> Перенаправлено на страницу .NET, передавая учетные данные для входа и т. Д.-> Страница ASPX устанавливает информацию сеанса, а затем немедленно перенаправляет обратно на страницу контента.

Мы знали, что это хак, но в краткосрочной перспективе это сработало, пока мы не смогли конвертировать все сайты.

Другие советы

Возможно, есть лучший способ сделать это, используя новые настройки IIS (должен признаться, я не был в курсе того, на что способен IIS7).Но вы можете выполнить XMLRequest со страницы входа ASP на страницу ASP.Net.Вы можете либо передать необходимые вам настройки в данных Post, либо заставить страницу .net заполнить сами данные сеанса, если логика достаточно проста.Страница .net затем вернет вам идентификатор сеанса .net в файле cookie. Вам необходимо установить его в коллекции файлов cookie пользователей ASP, чтобы у этого пользователя были файлы cookie сеанса .net и Classic ASP.

Это бы помогло.

Я реализовал это несколько лет назад, используя базу данных.

У Microsoft есть красивая хорошая статья на нем, хотя на данный момент он немного устарел.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top