有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java当客户端调用html或jsp页面时,是否可以选择windows登录凭据

有可能做到这一点吗?如果是的话,怎么做

当客户机调用jsp/html页面时,该页面应该能够从他的系统或active directory中检索客户机电子邮件id,并将其发送到服务器。这里我们不在jsp/html页面中提供任何登录页面。它应该从windows登录用户检索电子邮件


共 (2) 个答案

  1. # 1 楼答案

    简短回答:

    稍长一点:嗯,这要看情况而定

    首先,您必须在客户端(浏览器)获取当前登录用户的用户名。要得到这个,请从Gary在评论中提供的link开始

    然后,您必须与Active Directory服务器通信,通常使用LDAP。一个好的起点可以是this article

    总之,所有这些都要求应用程序和客户机处于受控环境中,例如在公司网络中。从地球另一端获取某个无名氏的电子邮件地址对你没有帮助

  2. # 2 楼答案

    如果你想让windows单独登录用户名,有一种方法。而且它只适用于Internet Explorer,最新的浏览器边缘可能支持这一点。它在任何其他浏览器中都不起作用

    <script type="text/javascript">
        var WinNetwork = new ActiveXObject("WScript.Network");
        alert(WinNetwork.UserName); 
    </script>
    

    现在,如果你想知道密码,绝对没有办法从纯JavaScript。由于安全原因,浏览器上下文将无法从正在运行的系统中访问此类详细信息。即使它有效,它也将是一个仅限Microsoft、IE/Edge的解决方案,而这不是web的目标

    如果不想脱离JSP和HTML,那么最好的方法是在服务器和IIS之间设置反向代理

    此设置将在IIS中保护,服务器可以访问IIS安全上下文(或标头)来验证或验证用户。但是,如果用户从非IE浏览器访问页面,我假设这确实需要一个登录页面

    有关如何在Tomcat中实现这一点的链接如下: http://tomcat.apache.org/tomcat-8.0-doc/windows-auth-howto.html#Microsoft_IIS

    脚注——我只是创建一个登录页面,而不是浏览所有这些内容