Классическая интеграция ASP и ASP.NET - PullRequest
12 голосов
/ 25 сентября 2008

В предыдущей работе у нас было классическое приложение ASP, которое никто не хотел мигрировать в ASP.NET. То, что он сделал, он сделал очень хорошо.

Однако была добавлена ​​новая функциональность, которая, казалось, лучше всего подходила для ASP.NET. Было принято решение позволить системе стать странным гибридом ASP и ASP.NET.

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

Оба метода кажутся ужасными препятствиями (помимо того, что они ужасно небезопасны).

Есть ли лучший или более чистый способ или это просто плохая идея начинать с того, что обсуждение этой темы бессмысленно?

Ответы [ 5 ]

8 голосов
/ 25 сентября 2008

Не можете ли вы сохранить данные сеанса в хранилище данных на сервере? то есть XML-файл, база данных и т. д. Затем можно передать только хэш (рассчитанный на основе некоторых критериев, который надежно идентифицирует сеанс) на страницу .NET, которая может собирать данные из хранилища данных, используя этот идентификатор, и заполнять данные сеанса , Это по-прежнему означает необходимость каждый раз передавать запросы из ASP в ASP.NET через прокси-сервер, чтобы гарантировать наличие последних данных сеанса в каждом приложении, но я не знаю альтернативного способа достижения этого, боюсь.

5 голосов
/ 25 сентября 2008

Мне приходилось сталкиваться с той же проблемой. В моем случае я зашифровал ключ в куки и использовал базу данных для любой другой информации. Я написал шифрование в .NET и попытался расшифровать идентификатор на стороне ASP. Существует некоторая странность, связанная со строкой base-64, в том, что ASP не получит ту же строку, что и .NET, поэтому вам, возможно, придется сделать то же самое, что и я, и переписать строку base-64 в шестнадцатеричный эквивалент или какой-нибудь аналог наименьшего общего знаменателя тактика. Это относительно безопасно (за исключением атаки XSS).

1 голос
/ 25 сентября 2008

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

1 голос
/ 25 сентября 2008

Я не знаю ни одного более чистого способа сделать это в общем случае. Но, возможно, вы можете более конкретно описать, в каком состоянии вы находитесь между системами? В вашем конкретном случае может быть более чистое решение. Состояние объекта сеанса не всегда лучший способ сохранить состояние.

1 голос
/ 25 сентября 2008

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

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