Классическое однократное копирование данных ASP в ASP.Net - PullRequest
3 голосов
/ 06 октября 2009

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

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

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

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

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

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

Ответы [ 3 ]

7 голосов
/ 06 октября 2009

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

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

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

Пользователь пытается получить доступ к некоторым защищенным страница контента -> перенаправлена ​​для входа страница -> вход в систему -> набор информации о сеансе основано на успешном входе в систему -> перенаправлено вернуться на страницу содержания.

до

Пользователь пытается получить доступ к некоторым защищенным страница контента -> перенаправлена ​​для входа страница -> вход в систему -> набор информации о сеансе основано на успешном входе в систему -> перенаправлено на страницу .net, передавая логин учетные данные и т. д. -> наборы страниц aspx информация о сеансе, а затем сразу перенаправляет обратно на страницу содержания.

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

1 голос
/ 06 октября 2009

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

Это сделало бы это.

0 голосов
/ 06 июля 2011

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

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

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