Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.Net与现有服务器的自定义身份验证_Asp.net_Asp.net Mvc_Authentication_Forms Authentication - Fatal编程技术网

ASP.Net与现有服务器的自定义身份验证

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服务进行通

我们有一个通过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
}