Вызов функции php из приложения .Net Core на ubuntu

На сервере ubuntu есть приложение .Net Core, которому необходимо проверять логин/пароль пользователя, учетная запись которого создана в php.

Пользователь входит в приложение .Net Core, вводит логин/пароль, которые были зарегистрированы на сайте (в приложении .php) Можно ли из приложения .Net Core вызвать функцию CheckPassword() из файла php, чтобы проверить пользователя?
Как это сделать?


Ответы (2 шт):

Автор решения: S.H.

Очевидный ответ - "сделать микросервис!".

Во многих статьях/книжках по микросервисам авторизация приводится как самый первый пример микросервиса.

То есть, архитектурно: в php-приложении следует добавить страницу, которой по HTTPS (например, просто GET'ом) передают пару "логин-пароль". А она отвечает в смысле "Правильная пара" или "Неправильная пара". Фактически, эта страница состоит их вызова функции CheckPassword(), окруженного кодом который берет аргументы и засовывает их в функцию и берет ответ функции и "показывает" его пользователю.

Если Вам хочется безопасности - можно настроить так, чтобы эта страница не торчала в интернет, а отвечала только на запросы из демилитаризованной зоны.

Вот и всё. Ваш микросервис готов. Теперь из приложения (на NET Core), в котором Вам нужна проверка логина-пароля - вы по HTTPS обращаетесь к микросервису, а он говорит, праильный ли пароль или нет.

Но, не стану лукавить, в моём ответе я просто подробнее расписал смысл комментария, который уже полчаса назад оставили под Вашим вопросом.

→ Ссылка
Автор решения: Виктор 78

Если действие необходимо совершить разово (не должно быть постоянным решением), если настройки ОС и .NET позволяют, вы можете обратиться к системному процессу и вызвать аналогично тому, как вызывают php из консоли:

php script.php login1 password1

в script.php производится подгрузка всего функционала (подключаете необходимые файлы или просто autoload.php), который реализует CheckPassword(); и добавляете обработка входящих (https://www.php.net/manual/ru/reserved.variables.argv.php), передавая их в CheckPassword()

Результат выводите просто с помощью echo, системный процесс выведет это как output, а этот output из .NET заберете.

→ Ссылка