Как разделить сессию входа в Joomla с одного сайта Joomla на один веб-сайт ASP.Net MVC

У меня есть один сайт 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 (переполнение стека)

Как я уже сказал, я не знаю ни одной из фреймворков, но я бы предположил, что вам придется возиться с тем, как сеансы читаются / записываются в обе системы.

Надеюсь, это поможет вам в правильном направлении.

С наилучшими пожеланиями.