我们使用PHP在带有Apache的iSeries上运行我们的intranet站点。默认情况下,托管在此框中的PHP无法自动获取登录windows用户的用户名。
使用从windows服务器承载的asp.net页面,我们可以自动获得该用户名。
从PHP页面,称为login.php,我想(通过任何方法)调用或重定向用户到另一个服务器上的asp.net网页。这个asp.net页面将传回一个值(用户名)。
我知道从.net检索用户名的语法。但是,我不想做的是,一个login.php重定向回?username=bob的查询字符串示例.因为它对用户是直接可见的,并且有许多明显的缺陷。
我怎样才能做到这一点呢?也许用Ajax?或者是某种.net代码,例如Request.LastUrlVisited.ReturnValue("bob"),它没有显示在地址栏中?
我认为asp.net页面需要专门作为一个网页,因为asp.net can服务不能从windows中删除用户名。
谢谢,
更新
通过这些评论,我了解到asp.net get服务实际上可以获得用户名..。它不需要是一个网页。因此,这为从php调用webservice服务提供了许多可能性。
发布于 2012-03-14 13:43:49
好的,我假设您可以将您的.Net站点转换为web服务。这个看起来会是这样的:
[WebMethod]
public string GetUserName()
{
}然后,您可以调用这个webservice表单JQuery:
$.ajax({
type: "POST",
url: "blah.asmx/GetUserName",
data: "{}",
dataType: "text",
success: function(username) {
//do stuff
}
});这里有一个有更好解释的网站:
http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/
编辑
我也会加密用户名
发布于 2012-03-14 13:42:53
好的,为什么不创建一个asp.net webservice并对asp.net webservice进行json/webservice调用并获取用户名,您可以检查这个- get username from Webservice。
代码:
Context.Request.ServerVariables["LOGON_USER"]https://stackoverflow.com/questions/9702851
复制相似问题