如题所述
Windows 2000 身份验证包括两个部分:交互式登录过程和网络身份验证过程。用户身份验
证的成功与否同时取决于这两个过程。
交互式登录过程:
交互式登录过程确认用户对于域帐户或本地计算机的身份。根据用户帐户类型的不同,交
互式登录过程也不同:
若持有域帐户,用户可以通过存储在 Active Directory 中的单方签名凭据使用密码或智
能卡登录到网络。通过使用域帐户登录,
被授权的用户可以访问该域和任何信任域中的资源。如果使用密码登录到域帐户,Window
s 2000 将使用 Kerberos V5 进行身份验
证。如果使用智能卡,Windows 2000 将使用 Kerberos V5 身份验证和证书。
若持有本地计算机帐户,用户可以通过存储在安全帐户管理器 (SAM)(也是本地安全帐户
数据库)中的凭据登录到本地计算机。任
何工作站或成员服务器均可以存储本地用户帐户,但这些帐户只能用于访问该本地计算机
。
网络身份验证过程:
网络身份验证确认用户对于试图访问的任意网络服务的身份。为了提供这种类型的身份验
证,Windows 2000 安全系统支持多种身
份验证机制,包括 Kerberos V5、安全套接字层/传输层安全 (SSL/TLS),以及为了与 Wi
ndows NT 4.0 兼容而支持的 LAN Manager。
使用域帐户的用户看不到网络身份验证。使用本地计算机帐户的用户在每次访问网络资源
时都必须提供凭据(例如用户名和密码)。
通过使用域帐户,用户就具有了凭据,该凭据被自动用作单方签名。
证的成功与否同时取决于这两个过程。
交互式登录过程:
交互式登录过程确认用户对于域帐户或本地计算机的身份。根据用户帐户类型的不同,交
互式登录过程也不同:
若持有域帐户,用户可以通过存储在 Active Directory 中的单方签名凭据使用密码或智
能卡登录到网络。通过使用域帐户登录,
被授权的用户可以访问该域和任何信任域中的资源。如果使用密码登录到域帐户,Window
s 2000 将使用 Kerberos V5 进行身份验
证。如果使用智能卡,Windows 2000 将使用 Kerberos V5 身份验证和证书。
若持有本地计算机帐户,用户可以通过存储在安全帐户管理器 (SAM)(也是本地安全帐户
数据库)中的凭据登录到本地计算机。任
何工作站或成员服务器均可以存储本地用户帐户,但这些帐户只能用于访问该本地计算机
。
网络身份验证过程:
网络身份验证确认用户对于试图访问的任意网络服务的身份。为了提供这种类型的身份验
证,Windows 2000 安全系统支持多种身
份验证机制,包括 Kerberos V5、安全套接字层/传输层安全 (SSL/TLS),以及为了与 Wi
ndows NT 4.0 兼容而支持的 LAN Manager。
使用域帐户的用户看不到网络身份验证。使用本地计算机帐户的用户在每次访问网络资源
时都必须提供凭据(例如用户名和密码)。
通过使用域帐户,用户就具有了凭据,该凭据被自动用作单方签名。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-12-29
1。首先从 这个站点下载 jcifs-1.3.2.jar包。
2。把这个包放到相应的lib文件下面。
3。对web.xml文件进行配置,添加如下内容
<filter>
<filter-name>NtlmHttpFilter</filter-name>
<filter-class>jcifs.http.NtlmHttpFilter</filter-class>
<!--jcifs.http.domainController 这个参数指定了DNS服务器的地址-->
<init-param>
<param-name>jcifs.http.domainController</param-name>
<param-value>192.168.1.206</param-value>
</init-param>
<!--jcifs.netbios.wins 这个参数也指定了DNS服务器的地址
The WINS server 192.168.1.206 will be queried domain controller.
If that WINS server is not responding, 192.168.1.207 will be queried.-->
<!--
<init-param>
<param-name>jcifs.netbios.wins</param-name>
<param-value>192.168.1.206,192.168.1.207</param-value>
</init-param> -->
<!--jcifs.smb.client.domain 这个参数指定了DNS服务器上面的域名-->
<init-param>
<param-name>jcifs.smb.client.domain</param-name>
<param-value>DLHT</param-value>
</init-param>
<!--jcifs.util.loglevel
0: Nothing
1: Critical [default]
2: Basic info. (Can be logged under load)
3: Detailed info. (Highest recommended level for production use)
4: Individual smb messages
6: Hex dumps
-->
<init-param>
<param-name>jcifs.util.loglevel</param-name>
<param-value>0</param-value>
</init-param>
<!--下面这两个参数是针对windows 2003服务器来设定.
这里的用户名必须是DNS服务器上面的用户名和密码
you provide init-parameters for the jcifs.smb.client.{domain,username,password}
properties to perform "preauthentication" for each transport to a domain contoller
so that a proper SMB signing key can be generated.
-->
<init-param>
<param-name>jcifs.smb.client.username</param-name>
<param-value>xxxx</param-value>
</init-param>
<init-param>
<param-name>jcifs.smb.client.password</param-name>
<param-value>c!23456</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>NtlmHttpFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4。要对你的DNS服务器添加NetBIOS协议。
5。对你的IE进行设置,自动使用当前用户名和密码登录。
6。用request.getRemoteUser();来获取当前登录的用户名。
通过对上面的配置以后,你就可以用当前配置 域中的用户进行登录了。
login.jsp 登录页面
<%@ page contentType="text/html;charset=gbk" %>
<%
//String userId = request.getParameter("userId");
String userId = request.getRemoteUser();
userId = userId.substring(userId.indexOf("//") + 1);
//passwordFlg 为单点登录标志 0为单点登录,1为正常登录
String str = "/ClientEnter?ClientEnter=" + userId + "&passwordFlg=0";
response.sendRedirect(str);
%>本回答被网友采纳
2。把这个包放到相应的lib文件下面。
3。对web.xml文件进行配置,添加如下内容
<filter>
<filter-name>NtlmHttpFilter</filter-name>
<filter-class>jcifs.http.NtlmHttpFilter</filter-class>
<!--jcifs.http.domainController 这个参数指定了DNS服务器的地址-->
<init-param>
<param-name>jcifs.http.domainController</param-name>
<param-value>192.168.1.206</param-value>
</init-param>
<!--jcifs.netbios.wins 这个参数也指定了DNS服务器的地址
The WINS server 192.168.1.206 will be queried domain controller.
If that WINS server is not responding, 192.168.1.207 will be queried.-->
<!--
<init-param>
<param-name>jcifs.netbios.wins</param-name>
<param-value>192.168.1.206,192.168.1.207</param-value>
</init-param> -->
<!--jcifs.smb.client.domain 这个参数指定了DNS服务器上面的域名-->
<init-param>
<param-name>jcifs.smb.client.domain</param-name>
<param-value>DLHT</param-value>
</init-param>
<!--jcifs.util.loglevel
0: Nothing
1: Critical [default]
2: Basic info. (Can be logged under load)
3: Detailed info. (Highest recommended level for production use)
4: Individual smb messages
6: Hex dumps
-->
<init-param>
<param-name>jcifs.util.loglevel</param-name>
<param-value>0</param-value>
</init-param>
<!--下面这两个参数是针对windows 2003服务器来设定.
这里的用户名必须是DNS服务器上面的用户名和密码
you provide init-parameters for the jcifs.smb.client.{domain,username,password}
properties to perform "preauthentication" for each transport to a domain contoller
so that a proper SMB signing key can be generated.
-->
<init-param>
<param-name>jcifs.smb.client.username</param-name>
<param-value>xxxx</param-value>
</init-param>
<init-param>
<param-name>jcifs.smb.client.password</param-name>
<param-value>c!23456</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>NtlmHttpFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4。要对你的DNS服务器添加NetBIOS协议。
5。对你的IE进行设置,自动使用当前用户名和密码登录。
6。用request.getRemoteUser();来获取当前登录的用户名。
通过对上面的配置以后,你就可以用当前配置 域中的用户进行登录了。
login.jsp 登录页面
<%@ page contentType="text/html;charset=gbk" %>
<%
//String userId = request.getParameter("userId");
String userId = request.getRemoteUser();
userId = userId.substring(userId.indexOf("//") + 1);
//passwordFlg 为单点登录标志 0为单点登录,1为正常登录
String str = "/ClientEnter?ClientEnter=" + userId + "&passwordFlg=0";
response.sendRedirect(str);
%>本回答被网友采纳