1

У нас есть существующий сервер лицензирования пользователей, который работает через PHP. Это позволяет создавать пользователей, проверяя, правильно ли указано имя пользователя и пароль, и обновление пользователя.Пользовательская аутентификация ASP.Net с существующим сервером

Мы создаем новый веб-сайт ASP.Net и хотим, чтобы он использовал существующие скрипты/базы данных пользователя для ограничения доступа к частям веб-сайта ASP.Net. Также есть веб-службы, которые используют один и тот же логин и пароль с помощью базовой проверки подлинности, к которой нам также необходим доступ с сервера ASP.Net.

Я ищу способ для .Net использовать удаленные PHP-скрипты для проверки входа. И мне нужен способ доступа к идентификатору и паролю пользователей, чтобы я мог использовать их для связи с этими существующими веб-службами с сервера ASP.Net от их имени.

Кто-нибудь знает, как это сделать. Или любые хорошие учебники или блоги?

Спасибо!

ответ

1

Возможно запустить PHP и ASP.NET на одном сервере и даже в одном и том же веб-приложении. Вы также можете создать .NET-код, который выполняется до и/или после каждого запроса PHP (с помощью HttpModule).

PHP под IIS имеет отдельный HttpHandler, который вызывает процесс cgi-bin.

Если вы хотите вызвать страницу PHP со страницы ASP.NET, один из подходов состоит в использовании Server.Execute() - хотя веб-службы, безусловно, будут более чистыми с точки зрения архитектуры.

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

0

к сожалению, это разные языки, а скрипты php не могут использоваться на сайте asp.net. Вам нужно будет воссоздать свои классы (скрипты), но то, что вы можете сделать, это использовать вашу существующую базу данных, если она находится в mysql или любом другом. Это лучшее, что вы могли бы сделать, насколько я знаю.

-1

Вы пытались использовать хранимые процедуры вместо PHP-скриптов? Таким образом, вам не нужно писать несколько экземпляров одного и того же кода, и его можно использовать в .NET и PHP.

0

Если эти веб-службы PHP уважают некоторые отраслевые стандарты, такие как SOAP, например, вы можете просто потреблять их, создавая строго типизированные клиентские прокси. Если нет, то у вас все еще есть старый добрый WebClient, который позволяет отправлять HTTP-запросы и читать ответы. Это просто:

using (var client = new WebClient()) 
{ 
    var values = new NameValueCollection 
    { 
     { "username", "john" }, 
     { "pwd", "secret" }, 
    }; 
    var result = client.UploadValues("http://foo.com/login.php", values); 
    // TODO: do something with the result returned by the PHP script 
} 
Смежные вопросы