[请教] 如何用java读取NT用户信息?

03-09-02 raynix
如题,谢谢~~~

iceant
2003-09-02 17:57
你是什么应用? 用户在域中吗?

raynix
2003-09-03 08:50
对,就是domain user

iceant
2003-09-03 09:27
简单介绍一下你的应用情况~~

raynix
2003-09-03 09:45
好的。

简单的说,我要在一个NT域上做一套办公系统,用NT域原有的用户信息进行身份验证。

raynix
2003-09-03 19:25
顶~~~~~

robbin
2003-09-03 20:59
JDK1.4里面带的javax.security包就可以,它就是JAAS,可以读取NT Domain的用户进行验证。不过配置起来挺麻烦的,Sun网站上有Guide。

iceant
2003-09-03 21:37
sun 的 JAAS 中有 NTLM 的 Model 但是我不建议你使用,因为它只能在 Windows 下使用。而我现在使用的解决方案是由 jcifs.samba.org 提供的。它可以运行在大多数操作系统下。

网上也有介绍如何使用 NTLM 协议进行协商实现 HTTP SSO 的例子,但是不支持 win9* 的客端,jcifs 支持所有的 windows 客户端。

Good luck

raynix
2003-09-04 18:17
多谢二位指路,我去探索一番~~~

j4v4
2003-09-07 20:18
这个问题没有研究过,但有个大概思路:

如果是nt2000的网络环境,所有用户都存在活动目录里(AD),既然是目录服务就可以用JNDI服务,使用相应的驱动类去读取.

iceant
2003-09-08 09:54
TO: j4v4
你的想法是对的,但是要看是什么应用。我之所以问楼主他的应用是什么就是这个意思。
如果是 WEB 应用,你要做到 SSO,在 Windows 下就只能走 Kerberos 或 NTLM。而 Kerberos 只在 win2k 以上操作系统才支持,尽管它很安全,性能也比NTLM 好,但是好的技术未必是好的解决方案。NTLM 在Win95以上都得到很好支持(win9*与 Win2k的实现是有区别的)。

我使用的解决方案,最后也还是从 AD 里取用户的信息。只是不是用的 JNDI。