我们有一个通过PHP运行的现有用户许可服务器。它允许创建用户,检查提供的用户名和密码是否有效,以及更新用户。
我们正在创建一个新的ASP.Net网站,并希望它使用这个现有的用户PHP脚本/数据库来限制对ASP.Net网站部分的访问。还有一些Web服务通过我们需要从ASP.Net服务器访问的基本身份验证使用相同的登录名和密码。
我正在寻找一种方法让.Net使用远程PHP脚本来验证登录。我需要一种方法让用户登录ID和密码可用,这样我就可以使用它们代表他们从ASP.Net服务器与那些现有的Web服务进行通信。
有谁知道如何完成这类事情。或者任何好的教程或博客?
谢谢!
答案 0 :(得分:1)
可以在同一台服务器上运行PHP和ASP.NET,甚至可以在同一个Web应用程序中运行。您还可以创建在每个PHP请求之前和/或之后运行的.NET代码(使用HttpModule
)。
IIS下的PHP只有一个单独的HttpHandler
来调用cgi-bin进程。
如果要从ASP.NET页面调用PHP页面,一种方法是使用Server.Execute()
- 尽管从架构角度来看,Web服务肯定会更清晰。
除此之外,对于问题的实际身份验证/授权部分,该方法取决于您的实现的具体细节。你当然可以在PHP和.aspx之间共享cookie。
答案 1 :(得分:0)
答案 2 :(得分: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
}
答案 3 :(得分:-1)
您是否尝试过使用存储过程而不是PHP脚本?这样,您就不必编写相同代码的多个实例,并且可以在.NET和PHP中使用它。