CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

高分敬达人--关于ldap的问题

楼主exitzhang(exit)2003-09-04 11:52:34 在 Java / J2EE / EJB / JMS 提问

菜鸟请教各位达人:我想利用windows   2000作为ldap   server实现用户管理,可是直接从中取出来的用户的attributes中没有userPassword,据说windows的password放在一个sam数据库中。我现在无法进行用户验证,请问:如何在java程序中实现这种用户验证?高分相送! 问题点数:100、回复次数:10Top

1 楼exitzhang(exit)回复于 2003-09-04 12:40:42 得分 0

自己顶Top

2 楼selfboss(黃海)回复于 2003-09-04 13:39:00 得分 10

upTop

3 楼exitzhang(exit)回复于 2003-09-04 13:45:02 得分 0

我到想到了一个办法,用输入的用户名和密码登陆看是否成功,不过这种方法好像有点龌龊。Top

4 楼ticlej(ticlej)回复于 2003-09-04 15:06:02 得分 20

那就要看你的ldap采用什么加密机制罗,如果是不能反向的,则只能用用输入的用户名和密码登陆看是否成功,这种方式.否则你只能采用重新设置密码来实现。很多加密算法都是不能被反向的。Top

5 楼exitzhang(exit)回复于 2003-09-04 16:24:09 得分 0

win2000的activity   directory采用的什么加密机制呢?我看到一个说法说他的password只能write不能read,是不是这个道理呢?Top

6 楼exitzhang(exit)回复于 2003-09-04 16:52:28 得分 0

什么叫重新设置密码?Top

7 楼exitzhang(exit)回复于 2003-09-05 09:54:15 得分 0

诸位有连接LDAPServer的源码吗?可否给小弟一份。我现在用的Novell的LDAP包,太复杂了,我想自己重写一下。在此谢过了!  
   
  zhanglei@gei.com.cnTop

8 楼cbhyk()回复于 2003-09-05 14:01:01 得分 70

win2000的密码是不可读的,用以下代码进行用户验证  
   
  import   java.util.Hashtable;  
   
  import   javax.naming.AuthenticationException;  
  import   javax.naming.Context;  
  import   javax.naming.NamingException;  
  import   javax.naming.directory.DirContext;  
  import   javax.naming.directory.InitialDirContext;  
   
   
  public   class   ActiveDirectoryConntct1  
  {  
          public   static   void   main(String[]   args)  
          {  
                  String   user="testuser";  
                  String   password="password";  
                  String   domain="test.com";  
   
                  Hashtable   env   =   new   Hashtable();  
                  env.put(Context.INITIAL_CONTEXT_FACTORY,   "com.sun.jndi.ldap.LdapCtxFactory");  
                  env.put(Context.PROVIDER_URL,   "ldap://192.168.6.13:389");  
                  env.put(Context.SECURITY_AUTHENTICATION,   "simple");  
                  env.put(Context.SECURITY_PRINCIPAL,   user   +   "@"   +   domain);  
                  env.put(Context.SECURITY_CREDENTIALS,   password);  
   
                  DirContext   ctx   =   null;  
                  try  
                  {  
                          ctx   =   new   InitialDirContext(env);  
                          System.out.println("验证通过");  
                  }  
                  catch(AuthenticationException   e)  
                  {  
                          System.out.println("账号或密码错误");  
                  }  
                  catch(Exception   e)  
                  {  
                          e.printStackTrace();  
                  }  
   
                  if(ctx   !=   null)  
                  {  
                          try  
                          {  
                                  ctx.close();  
                          }  
                          catch   (NamingException   e)  
                          {  
                                  e.printStackTrace();  
                          }  
                  }  
                  System.exit(0);  
          }  
  }  
  Top

9 楼ltf_ty(兔八哥)回复于 2003-11-28 17:35:37 得分 0

MarkTop

10 楼shining_ljr(老荣)回复于 2003-12-23 12:28:37 得分 0

markTop

相关问题

  • LDAP的问题,100分!
  • JNDI和LDAP问题,言者有其分
  • 散分致敬!!!!!!!!
  • 关于LDAP的问题,敬听行家赐教!
  • LDAP编程,我能给的最大分数
  • 对LDAP有研究的大虾请进,见者有分
  • LDAP的主要功能是什么?高分求教!!!
  • 在window怎样实现LDAP?!!!!?!!!分不够再加!
  • windows 活动目录及LDAP的问题?分不够在加!!!!!!!!!
  • a sample of LDAP

关键词

  • win2000
  • ldap
  • 用户
  • 密码
  • security
  • env
  • context
  • put
  • import javax
  • hashtable

得分解答快速导航

  • 帖主:exitzhang
  • selfboss
  • ticlej
  • cbhyk

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo