Индивидуальная аутентификация ASP.Net с существующим сервером - PullRequest
1 голос
/ 28 декабря 2011

У нас есть сервер лицензирования пользователей, работающий через PHP.Он позволяет создавать пользователей, проверять правильность предоставленных имени пользователя и пароля и обновлять пользователя.

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

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

Спасибо!

Ответы [ 4 ]

1 голос
/ 28 декабря 2011

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

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

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

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

0 голосов
/ 28 декабря 2011

Если эти веб-службы 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
}
0 голосов
/ 28 декабря 2011

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

0 голосов
/ 28 декабря 2011

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

...