Использование проекта MVC с существующим проектом веб-форм
Я собираюсь добавить некоторые новые функциональные возможности в существующий веб-сайт веб-форм, размещенный в IIS, и собирался использовать MVC. Я знаю, что вы можете сделать это довольно простым способом, если вы просто включаете MVC в существующем проекте веб-форм. Однако я хотел бы иметь возможность отделить старый код от нового, поместив его в новый проект. Старый проект немного запутан и плохо организован, так что чем дальше я смогу извлечь из него пользу, тем лучше.
Тем не менее, я не верю, что это возможно (или, вернее, это плохая идея в моем случае), по следующим причинам:
- Пользователь проходит проверку подлинности на сайте веб-форм, поэтому тогда мне придется собрать некоторую форму передачи учетных данных на новый сайт MVC, и наоборот
- Я бы не смог поделиться такими глобальными вещами, как Сессия, между двумя
- Мне пришлось бы координировать время сеанса, чтобы у меня не было времени ожидания основного сайта, если на него не было ссылки в установленное время
- Мне понадобится совершенно другой корневой URL (хотя я мог бы использовать тот же домен) для сайтов на основе MVC.
Мой главный вопрос заключается в следующем: я упускаю какой-то очевидный способ заставить их хорошо играть вместе как единое целое, или я прав, предполагая, что если я раскрою его в отдельном проекте веб-приложения, то это по сути два разных приложения? Если нет, есть ли какой-то другой способ, которым я могу связать их вместе, чтобы они выглядели более или менее как единое целое без фактического объединения проектов?
1 ответ
- Вы можете поделиться аутентификацией пользователя, если вы cookie, чтобы сохранить идентификатор пользователя. Затем используйте одну и ту же библиотеку в обеих системах для декодирования файлов cookie и т. Д. И т. Д.
- Совместное использование объектов сеанса было бы гораздо более сложной задачей.
- Да, это может случиться.
- Вы можете установить разные корневые URL для каждой системы. (Вы также можете установить маршрут по умолчанию в проекте MVC, чтобы он действовал в качестве прокси-сервера и извлекал веб-страницу с веб-страницы веб-форм, но это немного сложнее для достижения).
В общем, звучит так, как будто вы собираетесь потратить много времени и много головных болей.