JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 請問用JAVA 取得 WINDOWS AD時 , 我要先灌哪些軟體 , 做哪些步驟 ? 謝謝大家 !
lee30





發文: 13
積分: 0
於 2008-01-28 17:25 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
大家好
我是java新手 我學 java 不到一個月
最近主管給了我一個題目
就是叫我用java 去抓windows登入時的AD
然後進入某系統時 系統就會知道是你登入了
不用打帳號密碼即可使用該系統的功能
主管叫我用 google 搜尋一下

"看看哪各程式碼可以拿來用?" (主管只是叫我測試看看)

我爬過文 很多大大有提供程式碼
如以下這兩篇 應該比較像我需要的

http://www.javaworld.com.tw/jute/post/view?bid=7&id=181550&sty=2

http://www.javaworld.com.tw/jute/post/view?bid=7&id=164710&sty=1&tpg=1&age=0

但是重點是 我沒什麼概念 我不知道 我要先做哪些事情?

請問一下 我電腦要先做哪些步驟 灌哪些軟體

還有要跟管AD的人 還有管資料庫的人尋求哪些幫助嗎?

最後才可以用上面的網址所提供的程式碼

測試看看真的可以抓到我電腦的 windows AD

我找了好多文章 還有書 都沒有找到要先做哪些事情...

麻煩有經驗的大大幫幫忙...

謝謝大家...


reply to postreply to post
作者 Re:請問用JAVA 取得 WINDOWS AD時 , 我要先灌哪些軟體 , 做哪些步驟 ? 謝謝大家 ! [Re:lee30]
lee30





發文: 13
積分: 0
於 2008-02-01 18:12 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
找了好多文章 找到一個用jsp可以抓到帳號的
謝謝大家幫忙喔!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
<%@page contentType="text/html;charset=Big5"
import="java.sql.*"%>
 
<html>
<head>
<title>登入網站取得 Windows AD帳號測試 </title>
</head>
<body>
 
<%
String auth = request.getHeader("Authorization");
if (auth == null)
{
  response.setStatus(response.SC_UNAUTHORIZED);
  response.setHeader("WWW-Authenticate", "NTLM");
  response.flushBuffer();
  return;
}
if (auth.startsWith("NTLM "))
{
  byte[] msg = new sun.misc.BASE64Decoder().decodeBuffer(auth.substring(5));
  int off = 0, length, offset;
  if (msg[8] == 1)
  {
    byte z = 0;
    byte[] msg1 = {(byte)'N', (byte)'T', (byte)'L', (byte)'M', (byte)'S', (byte)'S', (byte)'P', z,(byte)2, z, z, z, z, z, z, z,(byte)40, z, z, z, (byte)1, (byte)130, z, z,z, (byte)2, (byte)2, (byte)2, z, z, z, z, z, z, z, z, z, z, z, z};
    response.setHeader("WWW-Authenticate", "NTLM " + new sun.misc.BASE64Encoder().encodeBuffer(msg1));
    response.sendError(response.SC_UNAUTHORIZED);
    return;
  }
  else if (msg[8] == 3)
  {
    off = 30;
 
    length = msg[off+9]*256 + msg[off+8];
    offset = msg[off+11]*256 + msg[off+10];   
 
    String username = new String(msg, offset, length);
    
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:test");
    Statement smt = con.createStatement();  
 
    String sql = "SELECT * FROM test " ;
    ResultSet rs = smt.executeQuery(sql);
       while(rs.next()){     
            String shohincd = rs.getString("id");  
            String shohinmei = rs.getString("name");
            if(username.equals(shohincd))     // <--這行沒有辦法傳回true 為什麼 ???
            out.println(shohinmei + "歡迎你 ");     
  
 }
    rs.close();   
    con.close();
    
  }
}
%>
 
</body>
</html>
 


reply to postreply to post
» JWorld@TW »  Java 新手區

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8