php调用asp.net页面以获取值


php calling asp.net page to get a value

我们在使用Apache的iSeries上使用PHP运行我们的intranet站点。默认情况下,托管在该框上的PHP无法自动获取登录的windows用户的用户名。

使用windows服务器托管的asp.net页面,我们可以自动获得该用户名。

从一个PHP页面,称之为login.PHP,我想(通过任何方法),调用或重定向用户到托管在不同服务器上的asp.net网页。这个asp.net页面将返回一个值(用户名)。

我知道从.net检索用户名的语法。但是,我不想做的是,用一个querystring示例将URL重定向回login.php?username=鲍勃。。。因为它对用户是直接可见的,并且有许多明显的缺陷。

我该如何实现这一目标?也许使用Ajax?或者某种.net代码,例如Request.LastUrlVisited.ReturnValue("bob"),它不会显示在URL栏中?

我认为asp.net页面需要特别是一个网页,因为asp.net Web服务不能从windows中重新设置用户名。

谢谢,


更新

通过这些评论,我了解到asp.net网络服务实际上可以获得用户名。。它不需要是网页。因此,这为从php调用Web服务开辟了一系列可能性。

好的,我假设您可以将.Net网站转换为web服务。这看起来像这样:

[WebMethod]
        public string GetUserName()
        {
        }

然后,您可以调用此Web服务表单JQuery:

  $.ajax({
    type: "POST",
    url: "blah.asmx/GetUserName",
    data: "{}",
    dataType: "text",
    success: function(username) {
      //do stuff
    }
  });

HEre是一个有更好解释的网站:

http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/

编辑

我也会加密用户名

好吧,为什么不创建一个asp.net Web服务,对asp.net Web Service进行json/webservice调用并获取用户名,你可以检查一下-从Web服务获取用户名

代码:

Context.Request.ServerVariables["LOGON_USER"]