2011-12-28 16 views
1

PHPを使用している既存のユーザーライセンスサーバーがあります。ユーザーの作成、提供されたユーザー名とパスワードが有効かどうかの確認、ユーザーの更新が可能です。ASP.Net既存のサーバーとのカスタム認証

新しいASP.Net Webサイトを作成し、この既存のユーザーPHPスクリプト/データベースを使用してASP.Net Webサイトの一部へのアクセスを制限します。また、ASP.Netサーバーからアクセスする必要のある基本認証を使用して同じログインとパスワードを使用するWebサービスもあります。

リモートのPHPスクリプトを使用してログインを検証する方法を探しています。また、ユーザーのログインIDとパスワードを使用できるようにする必要があるため、ASP.Netサーバーの既存のWebサービスと通信するために使用できます。

誰もこの種のことをやり遂げる方法を知っていますか?良いチュートリアルやブログはありますか?

ありがとうございます!

答えて

1

PHPとASP.NETを同じサーバー上で、同じWebアプリケーション内で実行することは可能です。各PHPリクエストの前および/または後に実行する.NETコード(HttpModule)を作成することもできます。

IISの下のPHPには、cgi-binプロセスを呼び出す別のHttpHandlerがあります。

ASP.NETページからPHPページを呼び出す方法は、Server.Execute()を使用する方法がありますが、Webサービスは確かに建築的な観点からはっきりしています。

質問の実際の認証/承認の部分については、そのアプローチは実装の詳細によって異なります。 PHPと.aspxの間でクッキーを共有するようなことは間違いありません。

0

残念ながら、それらは異なる言語であり、PHPスクリプトはasp.netサイトでは使用できません。あなたのクラス(スクリプト)を再作成する必要がありますが、あなたの既存のデータベースを使用してmysqlまたは他の場合はそれを使用することです。それが私が知る限りあなたができることは最高です。

-1

PHPスクリプトの代わりにストアドプロシージャを使用しようとしましたか?そうすれば、同じコードの複数のインスタンスを記述する必要はなく、.NETとPHPで使用できます。

0

これらのPHP Webサービスが、たとえば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 
} 
関連する問題