如何从我的 PHP 应用程序获取用户的 Windows 用户名?

发布于 2024-12-14 17:36:13 字数 613 浏览 1 评论 0原文

我在这里发帖的原因是因为我仍然不清楚为了实现这一目标必须满足哪些具体要求。

我们在 iSeries Apache Web 服务器上运行 PHP 应用程序。我们所有的用户都使用 IE。我们确实在公司网络内使用 AD 作为用户名。

当前的 apache 服务器设置不需要任何用户登录我们的页面...如果您在我们的网络上,则可以访问该页面。

有没有办法(通过 LDAP 或其他方式)获取登录的 Windows 用户名?最后的最后一招是将用户重定向到 Windows 服务器上托管的 ASP.NET 站点,并将用户名传递回 PHP 应用程序。但同样,这是最后的手段。

此处的链接: 您可以获得 Windows (AD) 用户名​​吗PHP? 有很多好的建议,但是 AUTH_USER 变量是空的,如链接中提到的...并且我不认为 iSeries Apache 服务器可以实现 Windows 集成身份验证。

如果有人可以解释我的选择,以及(如果可能的话)这些选择的难度……我们将不胜感激。请尽可能具体,因为我对 LDAP 或服务器配置没有经验。

My reason for posting here, is because it is still unclear to me what specific requirements must be met in order to accomplish this.

We run our PHP apps on an iSeries Apache web server. All of our users are on IE. We do use AD for our usernames inside our company network.

The current apache server setup does not require any users to log in to our pages... if you are on our network, you have access to the page.

Is there a way (through LDAP or other means) of getting the logged on windows username? A final last resort, would be to redirect the users to an ASP.NET site hosted on our windows servers, and pass the username back to the PHP app. But again, this is a very last resort.

The link here: Can you get a Windows (AD) username in PHP? has quite a few good suggestions, however the AUTH_USER variable IS empty as mentioned in the link... and i dont think the iSeries Apache server can implement Windows integrated auth.

If someone could explain my options, and (if possible) the difficulty of those options... it would be grealy appreciated. Please be as specific as possible as I am not experienced with LDAP or server configurations.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

红焚 2024-12-21 17:36:33

根据我为 PHP 应用程序编写 SSO 处理的经验,您可以使用 mod_auth_ntlm 和 Kerberos 的组合来完成这项工作(查看 这个链接,它与我记忆中的非常接近,尽管我最初的设置是大约 5 年前在 Gentoo 盒子上进行的)。如果我没记错的话,您应该在此设置的 $_SERVER["REMOTE_USER"] 变量中找到用户名。

From my experience writing SSO handling for PHP apps, you can make this work using a combination of mod_auth_ntlm and Kerberos (check out this link, it's very close to what I remember, though my original setup was ~5 years ago on a Gentoo box). If I recall correctly, you should find the username in the $_SERVER["REMOTE_USER"] variable in this setup.

好久不见√ 2024-12-21 17:36:31

由于您使用的是 IE,因此您可以从 ActiveX 对象和 JavaScript 获取它。要将其引入 PHP,是否可以将其作为隐藏字段包含在登录页面中?

try {
  var activex = new ActiveXObject('WScript.Network');
  document.write(activex.userName);
} catch (ex) {
  document.write("unable to get user info");
}

确保您已将此网站添加到浏览器的受信任区域,并且

You can get it from an ActiveX object and JavaScript since you're using IE. To get this into PHP, maybe include it as a hidden field in a login page?

try {
  var activex = new ActiveXObject('WScript.Network');
  document.write(activex.userName);
} catch (ex) {
  document.write("unable to get user info");
}

Make sure that you have added this site to the browser's trusted zone and enabled scripts for it to run.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文