c # — Как открыть сеанс входа в Joomla с одного веб-сайта joomla на один веб-сайт ASP.Net MVC

У меня есть один сайт Joomla и другое веб-приложение, основанное на ASP.NET MVC. Я хочу сделать автоматический вход в другое приложение после входа на сайт Joomla.

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

Вот Как использовать веб-сервисы для обмена сеансом входа в Joomla с одного сайта на другой? пример для одного сайта Joomla с другим сайтом Joomla.

Я надеюсь увидеть пример кода для объяснения решения.

1

Решение

Я не знаком с 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.

1

Другие решения

Я не знаком с Joomla или ASP.NET, но я думаю, что самый простой способ сделать это — хранить сессии в обычном месте. Это может быть база данных, к которой обе системы могут обращаться и считывать данные сеанса.

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

Обход ограничений на использование файлов cookie (переполнение стека)

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

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

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

0