У меня есть один сайт Joomla и другое веб-приложение, основанное на ASP.NET MVC. Я хочу сделать автоматический вход в другое приложение после входа на сайт Joomla.
Например, возможно, что после успешного входа в систему на веб-сайте Joomla автоматически выдается новый запрос в это приложение на основе ASP с идентификатором пользователя и паролем (зашифрованным, конечно), встроенным в строку запроса. Тогда это приложение ASP будет использовать эту информацию и расшифровать пароль и выполнить автоматический вход в систему?
Вот как использовать веб-службы для совместного использования сеанса входа в Joomla с одного сайта на другой? пример для одного сайта Joomla с другим сайтом Joomla.
Я надеюсь увидеть пример кода для объяснения решения.
Я не знаком с ASP.NET MVC, но вы можете перехватить событие входа в Joomla, обратившись к « Создание плагина для Joomla» . Это может быть очень простой пользовательский плагин , с которым у вас будет доступ ко многим событиям, в частности OnUserLogin
и OnUserAfterLogin
. Код, который вы помещаете в одно из этих двух событий, – это то, где вы должны использовать CURL или любую другую технологию для POST вашего запроса ASP.
Очень простая структура кода:
<?php defined('_JEXEC') or die; class Plgtest extends JPlugin { public function onUserLogin($user, $options = array()) { // The user has now logged into Joomla - all user info is available in variable $user // Do some PHP stuff here to "issue a new request to this ASP based app" // Example PHP code for ASP login at https://stackoverflow.com/questions/25539787/how-to-post-asp-net-login-form-using-php-curl } } ?>
См. Этот вопрос для PHP-кода для входа в ASP с PHP.
Я не знаком с Joomla или ASP.NET, но я думаю, что самый простой способ сделать это – хранить сеансы в общем месте. Это может быть база данных, с которой обе системы могут получить доступ и прочитать данные сеанса.
Эти решения основаны на том факте, что один из веб-сайтов существует как субдомен другого или файл cookie, который общий доступ к системе не может быть прочитан обоими. Проверьте эту ссылку на другое решение, работающее с этим ограничением. Это беспорядочное решение, но возможно.
Обходное ограничение для файлов cookie (переполнение стека)
Как я уже сказал, я не знаю ни одной из фреймворков, но я бы предположил, что вам придется возиться с тем, как сеансы читаются / записываются в обе системы.
Надеюсь, это поможет вам в правильном направлении.
С наилучшими пожеланиями.