Я переписываю веб (приложение?). Я постараюсь все настроить, кратко (хаха). Веб-сайт моего клиента встроен в / в CMS. Большая часть статического контента. Веб-сайт размещен где-то, но есть зона входа для клиентов, чтобы отслеживать их заказы и другой динамический бизнес-контент, который хранится на серверах моего клиента. Аутентификация происходит с обеих сторон (сессия [php] управляет сессией, но бизнес-логика и данные клиента, включая пароли, находятся на серверах моего клиента в базе данных моего клиента и обслуживаются через wcf). Каждый php-запрос к веб-сервису wcf отправляет строку аутентификации json, и если аутентифицировано, мой веб-сервис wcf возвращает результат json, заполненный запрошенными данными (который затем используется с шаблонами smarty для генерации вывода, который cms отправляет в браузер).
Это было бы хорошо, за исключением того, что php-код - это монументальные спагетти. На самом деле, это, вероятно, не так уж плохо по стандартам php, но я привык ... ну, кого это волнует, потому что все сводится к тому, что я его не писал, но я должен расширять его и каждую модификацию занимает в 10 (0?) раз больше времени, чем следует, и только утопает стог сена в большем количестве лапши (чтобы смешать метафоры). И, черт возьми, нет никаких изменений в тестировании, прежде чем они будут запущены. Любые изменения или дополнения должны быть сделаны в производственной среде (из-за зависимостей от среды CMS). Поэтому я должен смешать тактику блиц с правкой и молитвой, а также удерживать одиннадцатый палец на кнопке пословицы, как это было бы хорошо (не было бы неплохо, если бы это был всего лишь один шаг, чтобы вернуться?). Я много раз играл с рефакторингом на стороне php, и даже написал около 75% полного повторного воплощения. Но ...
Это веб-приложение получает все больше обязанностей и запросов на изменение. Для этого клиента я написал ERP на 500 000 строк в C #, и вся его бизнес-логика находится в нем. Итак, я полагаю, что существует определенная рентабельность инвестиций в то, что весь их код находится в .NET для меня или любого, кто последует за ним.
Единственным реальным ограничением для любого решения является то, что все, что отображает CMS, должно быть добавлено к переменной «$ output». Это оставляет вещи довольно открытыми.
Во всяком случае, (зачастую лишнее, но, надеюсь, занудное) повествование завершено. Итак, с этим я установил простую обёртку php, которая использует cURL для получения содержимого url, которое поддерживается моим новым mvc-приложением. Это прекрасно работает для получения. Мой вопрос заключается в том, как лучше всего это сделать. Каждый запрос со стороны cms должен включать некоторую аутентификационную информацию, которую он будет получать из базы данных (или чего-либо еще) и публиковать со своим запросом. Я полагаю, что просто каннибализирую веб-сервис wcf и буду обслуживать весь контент из приложения mvc.
Итак, в принципе, как лучше написать приложение mvc, в котором каждый запрос представляет собой сообщение, содержащее информацию об аутентификации (это может быть json или xml)? Я пытаюсь избежать декорирования каждого метода контроллера с помощью [HttpPost], и каждый метод действия требует аргумента моей аутентификации dto, чтобы в какой-то момент я мог быстро и легко переключить всю аутентификацию на аутентификацию asp-форм.
Спасибо (за чтение)!