ASP.Net与现有服务器的自定义身份验证
我们有一个通过PHP运行的现有用户授权服务器。它允许创建用户、检查提供的用户名和密码是否有效以及更新用户 我们正在创建一个新的ASP.Net网站,并希望它使用此现有用户PHP脚本/数据库来限制对ASP.Net网站部分的访问。还有一些web服务通过基本身份验证使用相同的登录名和密码,我们也需要从ASP.Net服务器访问这些服务 我正在寻找.Net使用远程PHP脚本验证登录的方法。我需要一种方法让用户的登录id和密码可用,这样我就可以使用它们代表他们从ASP.Net服务器与那些现有的web服务进行通信 有人知道如何着手完成这类事情吗。或者有什么好的教程或博客ASP.Net与现有服务器的自定义身份验证,asp.net,asp.net-mvc,authentication,forms-authentication,Asp.net,Asp.net Mvc,Authentication,Forms Authentication,我们有一个通过PHP运行的现有用户授权服务器。它允许创建用户、检查提供的用户名和密码是否有效以及更新用户 我们正在创建一个新的ASP.Net网站,并希望它使用此现有用户PHP脚本/数据库来限制对ASP.Net网站部分的访问。还有一些web服务通过基本身份验证使用相同的登录名和密码,我们也需要从ASP.Net服务器访问这些服务 我正在寻找.Net使用远程PHP脚本验证登录的方法。我需要一种方法让用户的登录id和密码可用,这样我就可以使用它们代表他们从ASP.Net服务器与那些现有的web服务进行通
谢谢 不幸的是,它们是不同的语言,在asp.net站点中不能使用php脚本。您必须重新创建类(脚本),但如果现有数据库位于mysql或任何其他数据库中,您可以使用它。据我所知,这是您能做的最好的事情。您是否尝试过使用存储过程而不是PHP脚本?这样,您就不必编写同一代码的多个实例,它可以在.NET和PHP中使用。可以在同一台服务器上,甚至在同一个web应用程序中运行PHP和ASP.NET。您还可以创建在每个PHP请求之前和/或之后运行的.NET代码(使用
HttpModule
)
IIS下的PHP只有一个单独的HttpHandler
,它调用CGIBIN进程
如果要从ASP.NET页面调用PHP页面,一种方法是使用Server.Execute()
——尽管从体系结构的角度来看,web服务肯定会更干净
除此之外,对于问题的实际身份验证/授权部分,方法取决于实现的具体情况。您当然可以在PHP和.aspx之间共享cookies。如果这些PHP web服务遵守某些行业标准,例如SOAP,您可以通过生成强类型的客户端代理来使用它们。如果没有,那么您仍然有好的旧版本,它允许您发送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
}