在Java系统中,怎么使用Windows的登录帐号密码自动登录

来源:互联网  时间:2016/5/18 2:32:08

关于网友提出的“在Java系统中,怎么使用Windows的登录帐号密码自动登录”问题疑问,本网通过在网上对“在Java系统中,怎么使用Windows的登录帐号密码自动登录”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:在Java系统中,怎么使用Windows的登录帐号密码自动登录
描述:

在asp中好像可以使用windows的登录帐号自动登录的asp系统中,但是在java中怎么使用windows NT帐号自动登录系统。

比如我登录了我的windows系统,当我访问我的java应用时,不需要再次登录了,同时能够显示当前用户的信息,如用户名,邮箱,经理名字等。哪位同学能够提供好的解决方案,谢谢


解决方案1:

对,只需要判断windows操作系统的用户名就可以了吧。。

解决方案2:

我现在的疑问是 你既然已经登陆系统了 那java就不用判断了呀

解决方案3:

谢谢你的回答,您说的非常的对,但是项目的需求是希望不要再次登录。所以我一直在研究在java环境下是否也有这种可能

解决方案4:

你说的这个需要应该是单点登录吧(SSO)。ASP本身就是微软的,使用Windows账户验证肯定是可以的,但是Java就很麻烦,你得启用AD服务,并且连接到LDAP服务器验证。

至于密码要输入的问题,很显然,Java不可能直接得到操作系统的用户密码,如果能的话,那Windows的还有什么安全性可言。

给你一段Java代码参考一下:

import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

public class LDAP {
	public static final String AD_SERVER_DOMAIN = "MSHOME";

	// 使用LDAP验证密码
	public static void main(String[] args) {
		String userName = "user"; // 用户名称
		String passwd = "123456"; //密码
		String host = "192.168.1.122"; // AD服务器
		String port = "389"; // 端口
		String domain = "@osc.net"; // 邮箱的后缀名
		String url = new String("ldap://" + host + ":" + port);
		String user = userName.indexOf(domain) > 0 ? userName : userName + domain;
		Hashtable env = new Hashtable();
		DirContext ctx = null;
		env.put(Context.SECURITY_AUTHENTICATION, "simple");
		env.put(Context.SECURITY_PRINCIPAL, user);
		if ("".equals(passwd.trim())) {
			passwd = null;
			System.out.println("密码不能为空!!");
		}
		env.put(Context.SECURITY_CREDENTIALS, passwd);
		env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); // LDAP工厂类
		env.put(Context.PROVIDER_URL, url);
		try {
			ctx = new InitialDirContext(env);
			ctx.close();
			System.out.println("验证成功!!");
		}
		catch (NamingException e) {
			e.printStackTrace();
			System.out.print("验证失败!!");
		}
	}
}

上一篇tomcat一般最小堆栈和最大堆栈设置成多大为好,例如服务器内存是16g
下一篇为什么Tomcat会莫名的把磁盘空间使用掉?
明星图片
相关文章
《在Java系统中,怎么使用Windows的登录帐号密码自动登录》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)