公司有个老系统,目前有个需求需要在一个 JSP 页面获取当前电脑登录人的域账号,无奈百度了一大堆无解,肯定各位大佬方便的话解惑一下
1
NewYear 2022-11-15 18:47:55 +08:00
jsp 在客户端这边是运行在浏览器上的吧,浏览器可没这么大权限给你。
要不你写一个 exe 让用户安装,然后在客户端注册一个协议前缀,传个参数启动你的 exe (一般需要用户允许,自动是不可能自动的),并且 js 监听刚才那个参数在服务器上是否收到数据,exe 再把用户名+刚才的参数发送给服务器,浏览器从服务器获得数据,完美。 或者单独做一个输入框,手工输入域帐号和密码,服务器做下检验。 |
2
Foxkeh 2022-11-15 19:16:09 +08:00
需求有意思, 不过 JSP 在服务端, 服务端能直接拿到的应该是用户 IP 和 UserAgent, 以及 js 能获取到的属性
如果是内网环境,可不可以把这个问题转变为通过 IP 或计算机名称判断当前登录用户帐号? 或者篡改所有浏览器 UserAgent? 额..我的思路也堵了, 坐等大侠 |
3
ElegantOfKing 2022-11-15 19:24:25 +08:00
本想写一大段,想想算了。
最简单的就是和 1 楼一样,用户自己输入账号密码做校验。 如果你想无状态获取,目前来说基本不可能。或者你强制要求必须使用 IE ,那还有点希望。 |
4
montaro2017 2022-11-16 08:59:34 +08:00
不知道能不能用浏览器插件来实现
|
5
uCharles OP |
6
NewYear 2022-11-16 11:16:54 +08:00
@Foxkeh 内网理想状态是每个电脑都有独立 IP ,但是实际上……如果中间夹了个路由器就不好说了……不过确实不失为一种具有可行性的方法,自动登记信息可以通过域控下发脚本实现。
篡改 UA 的想法确实牛逼,但是能篡改 UA ,脚本请求个 URL 写个 cookie 应该是没问题的(或者直接写浏览器的配置文件 cookie 相关),配合油猴脚本插件还是很具有可行性的。 或者下发个 http 服务器,在 web 中请求 127.0.0.1 ,如果是单用户系统,在登录时候刷新下相关文件,基本没啥毛病。 @uCharles 请问你是开发还是 IT 运维人员?如果是开发一般还是能分得清浏览器权限和解决办法的,如果是运维可能没有相关技术栈的话,不太具有可行性。 |
7
NewYear 2022-11-16 11:22:32 +08:00
@ElegantOfKing
注册一个协议,传参数唤起一个 exe 其实是综合情况里最好的方案,甚至可以支持多用户同时登录的情况,没记错的话 20 多年前的 QQ 就是这样干的了。 账号密码检验属于不太好的方案。 企业环境的话下发一个 http 服务器,通过脚本实时更新登录在当前电脑的用户名,js 请求下 127.0.0.1 ,完全是可行的。但只能支持同时登录单用户的电脑。 |
8
julyclyde 2022-11-17 11:28:31 +08:00
你这的系统需要和 windows AD 集成才可以啊
|