如何通过.net.net 获取域名到AD域里面的用户密码吗

安全检查中...
请打开浏览器的javascript,然后刷新浏览器
< 浏览器安全检查中...
还剩 5 秒&用户名:王春海
文章数:495
评论数:5273
访问量:9833926
注册日期:
阅读量:1297
阅读量:3317
阅读量:583971
阅读量:469202
51CTO推荐博文
&前几天有个单位,新配置了一台服务器,做文件服务器,为网络中提供共享文件夹服务,该单位大约有50多个用户。服务器采用Windows Server 2008 R2操作系统,升级到Active Directory,为单位每个职工创建了一个用户名,在服务器上除了为每个用户创建一个“共享文件夹”保存个人数据外,还创建了“公共”共享文件夹,保存单位的数据,并且在公共文件夹中创建了若干子目录,通过用户权限,设置只让指定用户上传、修改其中的文件。在开始规划的时候,是计划让单位的所有计算机加入到域,采用域用户登录到计算机,使用并访问服务器提供的共享文件夹。但在配置好服务器之后,在准备将工作站加入到域时,发现单位的大多数计算机都是Windows XP HOME操作系统,不能加入到域(Windows XP Professional可以加入到域)。虽然可以将Windows XP HOME升级到Windows XP Professional,并且也能保留原来的计算机设置,但与用户商量,有以下几点,用户有疑虑:(1)Windows XP HOME是计算机OEM的操作系统,如果升级到Windows XP Professional,虽然技术上没有问题,但这与软件购买的许可冲突(该单位都是正版操作系统,包括服务器操作系统)。(2)单位的许多用户,都习惯在“桌面”保存大量的文件,在加入到域之后,还要将保存在原来“本地用户”文件夹中的“桌面”数据“移动”到新的“域用户”桌面文件夹,这一部分虽然简单,但对于大多数用户来说,仍然显得复杂。(3)加入域之后,需要修改DNS,虽然不影响访问外网,但用户习惯设置公网的DNS。由于有以上问题存在,并且加入用户只是使用服务器提供的“共享文件夹”,工作站是否加入到域并不是最重要的,只要每个用户记住自己的用户名及密码,访问服务器提供的共享文件夹是不影响使用的。至此,问题算是解决,但由此引来另一个问题,就是“没有加入域的计算机,这些用户怎么才能修改自己的域用户密码”?为了解决这个问题,我搭建了如下的实验环境,尝试解决。实验拓扑非常简单,一台升级到Active Directory的Windows Server 2008 R2(单网卡,单IP),另一台是没有加入到域的Windows XP,网络拓扑如图1-1所示。图1-1 实验环境如果要在非域环境中,修改域用户密码,我能想到的方法有以下这些:(1)如果网络中有一台Exchange服务器,在Exchange的OWA中,有通过Web页面修改密码的选项。但为了这么一个网络,再部署一台Exchange,成本较高。(2)在服务器上做个网站,与Active Directory集成,做个修改密码的脚本或网页。但这需要懂(2)将服务器配置为“单网卡”VPN服务器,没有加入到域的计算机,创建一个VPN链接,拨号到VPN服务器,第一次登录VPN服务器时,修改用户密码。(3)将服务器启用“远程桌面”,让用户使用“远程桌面连接”程序连接到服务器,在第一次登录时,更改密码。下面分别介绍这两种方法。1 配置VPN服务器修改密码在大多数的情况下,VPN服务器需要至少2个网卡。而在Windows Server中,可以配置单网卡的VPN服务器,本节就会配置一个单网卡的VPN服务器,以实现通过VPN拨号连接成功之后,利用Active Directory帐户中“用户下次登录必须更改密码”的设置,实现拨号成功之后立即更改密码,实现非域用户更改密码的要求。下面的操作是在Active Directory服务器上配置,主要步骤如下。(1)以管理员方式登录Active Directory服务器,在“管理工具”中执行“路由和远程访问”,右击“计算机名称”,在弹出的快捷菜单中选择“配置并启用路由和远程访问”,如图1-2所示。图1-2配置并启用路由和远程访问(2)在“配置”对话框选择“自定义配置”,如图1-3所示。图1-3自定义配置(3)在“自定义配置”对话框中选择“VPN访问”,如图1-4所示。图1-4选择VPN访问(4)在“正在完成路由和远程访问服务器安装向导”对话框,单击“完成”按钮,在弹出的“启动服务”对话框中单击“启动服务”按钮,如图1-5所示。图1-5启动服务经过上述配置,VPN服务器已经配置完成。然后在“Active Directory用户和计算机”中,为每个员工创建一个用户,允许用户拨入,并修改用户属性,主要步骤如下。(1)在创建用户后,右击帐户,选择“属性”,如图1-6所示。图1-6帐户属性(2)在“拨入”选项卡中,在“网络访问权限”选项组中,选择“允许访问”,如图1-7所示。图1-7拨入属性(3)在“帐户”选项卡中,在“帐户选项”中选择“用户下次登录时须更改密码”,如图1-8所示,然后单击“确定”按钮。图1-8用户下次登录时须更改密码2 在客户端使用VPN方式更改密码在没有加入到域的客户端,员工创建VPN拨号连接,并使用管理员为自己创建的帐户并使用初始密码登录,在登录成功之后即弹出更改密码的选项,主要步骤如下(以操作系统是Windows XP为例)。(1)打开“网络连接”,双击“新建连接向导”,如图1-9所示。图1-9新建连接向导(2)在“网络连接类型”选择“连接到我的工作场所的网络”,如图1-10所示。图1-10连接到我的工作场所的网络(3)在“网络连接”对话框中选择“虚拟专用网络连接”,如图1-11所示。图1-11虚拟专用网络连接(4)在“VPN服务器选择”对话框中,输入网络中Active Directory服务器地址(同时也是VPN服务器地址),在本示例中为192.168.10.10,如图1-12所示。图1-12指定VPN服务器地址(5)在“正在完成新建连接向导”对话框中单击“完成”按钮,如图1-13所示。图1-13创建VPN连接完成在创建VPN连接之后,弹出“连接xx”对话框,输入用户名密码(如图1-14所示),在此对话框中,用户名即是管理员为每个职工创建的用户名,密码则为初始密码(在管理员创建帐户时,会为每个员工创建统一的初始密码)。图1-14输入用户及密码之后会拨叫到VPN服务器,在验证用户名及密码,并拨号成功之后,会弹出“更改密码”的对话框,如图1-15所示,在此对话框中,员工需要为自己的帐户设置新的密码,如图1-15所示。图1-15更改密码【说明】如果在图1-8中,帐户属性中没有选中“用户下次登录时须更改密码”单选按钮,则不会在图1-15中弹出“更改密码”提示,而是直接拨号成功。在拨号成功之后,右击单击右下角的计算机图标,打开VPN状态,单击“断开”按钮,断开到VPN服务器的连接,至此通过VPN的方式更改密码完成。3为服务器启用远程桌面除了通过配置VPN服务器的方式外,还可以通过配置“远程桌面”的方式,利用图1-8设置中“用户下次登录时须更改密码”的要求,让首次登录的用户修改密码的方式,实现帐户密码的修改。首先在服务器上启用“远程桌面”功能。(1)右击“我的电脑”选择“属性”,在左侧选择“远程设置”,如图1-16所示。图1-16远程设置(2)在“系统属性”对话框中,在“远程”选项卡中,在“远程桌面”选项中选择“允许运行任意版本远程桌面的计算机连接”,如图1-17所示。图1-17启用远程桌面服务器上其他的安全属性不需要修改。4在工作站端使用远程桌面连接在工作站端,用户需要使用“远程桌面连接客户端”,通过登录服务器完成初始密码的修改,主要步骤如下。(1)职工在自己的计算机上,打开“运行”对话框,输入mstsc并按回车键,如图1-18所示。图1-18 运行(2)在“计算机”文本框中输入服务器的地址,在此为192.168.10.10,如图1-19所示。图1-19 输入服务器的地址(3)在登录到远程桌面后,选择“其他用户”,如图1-20所示。图1-20其他用户(4)之后输入管理员为职工创建的帐号,并输入初始密码,按回车键,如图1-21所示。图1-21 输入帐户及密码登录(5)在登录成功之后,会弹出“用户首次登录之前必须更改密码”的提示,如图1-22所示,单击“确定”按钮。图1-22 用户首次登录之前必须更改密码(6)随后弹出更改密码的对话框,其中第一行是帐户,第二行是初始密码(已经默认输入),职工需要在第三、第四行输入新的密码,之后按回车键即可,如图1-23所示。图1-23输入新密码(7)至此已经完成密码的修改,如图1-24所示。图1-24密码己更改但随后会弹出错误提示,用户不能登录到这台计算机,因为在域控制器策略中,普通的域用户不能登录到服务器,如图1-25所示,但我们已经完成了用户密码的修改,用户单击“确定”按钮,或单击右上角的“X”按钮,关闭并退出远程桌面连接。图1-25 用户不能登录5用户再次更改密码的方法如果用户在更改密码之后,不慎忘记密码,管理员可以为用户“重置密码”,为用户再次设置一个比较简单的密码,或者仍然设置为统一的初始密码,并选中“用户下次登录时须更改密码”选项,主要步骤如下。(1)在“Active Directory用户和计算机”中,右击选中要重新设置密码的帐户,在弹出的右键菜单中选择“重置密码”,如图1-26所示。图1-26重置密码(2)在弹出的“重置密码”对话框中,为用户设置新的密码,并选中“用户下次登录时须更改密码”选项,如图1-27所示,这样将为用户重置密码,用户使用上述的两种方法其中的一种,即可以重新设置自己的密码。图1-27重置密码本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
14:12:47 15:10:22 15:37:48 18:34:57 20:43:33 20:45:55 20:49:47 20:52:52 11:02:18 13:54:46 08:27:33 12:33:51 16:28:34 23:43:28 13:53:15 15:54:38 14:40:50 15:02:24使用java连接AD域,验证账号密码是否正确
web项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理。其实客户就是只要一套账号可以访问所有的OA,CRM等办公系统。
这就是第三方验证。一般有AD域,Ldap,Radius,邮件服务器等。最常用的要数AD域了。因为window系统在国内占据了大量的江山。做起来也很方便。
我这篇文章就是写,如何用java去实现AD域的身份验证。好了,直接看代码吧:
package com.
import java.util.H
import javax.naming.AuthenticationE
import javax.naming.C
import javax.naming.directory.DirC
import javax.naming.directory.InitialDirC
* 使用java连接AD域,验证账号密码是否正确
* @author Herman.Xiong
下午02:07:26
* @version V3.0
* @since jdk 1.6,tomcat 6.0
public class AdTest {
* 使用java连接AD域
* @author Herman.Xiong
下午02:24:04
* @return void
* @throws 异常说明
* @param host 连接AD域服务器的ip
* @param post AD域服务器的端口
* @param username 用户名
* @param password 密码
public static void connect(String host,String post,String username,String password) {
DirContext ctx=
Hashtable HashEnv = new Hashtable();
HashEnv.put(Context.SECURITY_AUTHENTICATION, simple); // LDAP访问安全级别(none,simple,strong)
HashEnv.put(Context.SECURITY_PRINCIPAL, username); //AD的用户名
HashEnv.put(Context.SECURITY_CREDENTIALS, password); //AD的密码
HashEnv.put(Context.INITIAL_CONTEXT_FACTORY,com.sun.jndi.ldap.LdapCtxFactory); // LDAP工厂类
HashEnv.put(com.sun.jndi.ldap.connect.timeout, 3000);//连接超时设置为3秒
HashEnv.put(Context.PROVIDER_URL, ldap:// + host + : + post);// 默认端口389
ctx = new InitialDirContext(HashEnv);// 初始化上下文
System.out.println(身份验证成功!);
} catch (AuthenticationException e) {
System.out.println(身份验证失败!);
e.printStackTrace();
} catch (municationException e) {
System.out.println(AD域连接失败!);
e.printStackTrace();
} catch (Exception e) {
System.out.println(身份验证未知异常!);
e.printStackTrace();
} finally{
if(null!=ctx){
ctx.close();
} catch (Exception e) {
e.printStackTrace();
public static void main(String[] args) {
AdTest.connect(10.10.2.116, 389, , 123456);
代码到此结束了,看看运行效果吧:【求助】求一个获取windows登录用户名和域 的脚本页面【asp.net吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:39,623贴子:
【求助】求一个获取windows登录用户名和域 的脚本页面收藏
百强板材_别墅豪宅健康板_中国板材十大品牌!板材十大品牌
功能:一个可以直接访问的aspx页面,假定为:在浏览器器中访问这个页面,该页面输出当前windows域用户的 用户名、域、ip等我的测试环境:测试时用本地用wamp5搭建的apache服务器,成功模拟出了asp.net的运行环境,asp.net探针在成功测试通过,即可以运行aspx程序后期布置到公司内网服务器上的一个IIS服务器上进一步功能:aspx页面最好返回的内容为xml格式,或者js代码,方便我使用src的方式获取数据,返回数据形如:var username = "username";var ad = "ad";var ip = "ip";感谢:提完问题先感谢所有关注此帖、回复此帖的所有热心吧友,对于成功解决我的问题的人,以百度知道积分相谢(或其它我拥有的虚拟货币、物品)PS:我的PC网络属于域账户登录的内部网络,在内部网络中,具有MSCRM服务器,假定访问url为 ,或者可以借用mscrm的验证方式我略懂php、js、ajax,对于asp、asp.net 可以认为完全不懂,一般使用Macromedia Dreamweaver 8 编写程序、页面,所以希望能有详细的编写方法。。。。再次万分感谢
不会asp.net的人真悲剧,为毛微软不考虑给使用php的人开一个接口啊。。。待遇不公平。。。
用membersship来实现windows ad登录支持 帮忙顶
还是多谢,虽然你说的跟我的问题没用处。。
登录百度帐号推荐应用使用java连接AD域,验证账号密码是否正确
web项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理系统。其实客户就是只要一套账号可以访问所有的OA,CRM等办公系统。
这就是第三方验证。一般有AD域,Ldap,Radius,邮件服务器等。最常用的要数AD域了。因为window系统在国内占据了大量的江山。做起来也很方便。
我这篇文章就是写,如何用java去实现AD域的身份验证。好了,直接看代码
web项目中有时候客户要求我们使用ad域进行身份确认,不再另外做一套用户管理系统。其实客户就是只要一套账号可以访问所有的OA,CRM等办公系统。
这就是第三方验证。一般有AD域,Ldap,Radius,邮件服务器等。最常用的要数AD域了。因为window系统在国内占据了大量的江山。做起来也很方便。
我这篇文章就是写,如何用java去实现AD域的身份验证。好了,直接看代码吧:package com.
import java.util.H
import javax.naming.AuthenticationE
import javax.naming.C
import javax.naming.directory.DirC
import javax.naming.directory.InitialDirC
* 使用java连接AD域,验证账号密码是否正确
* @author Herman.Xiong
下午02:07:26
* @version V3.0
* @since jdk 1.6,tomcat 6.0
public class AdTest {
* 使用java连接AD域
* @author Herman.Xiong
下午02:24:04
* @return void
* @throws 异常说明
* @param host 连接AD域服务器的ip
* @param post AD域服务器的端口
* @param username 用户名
* @param password 密码
public static void connect(String host,String post,String username,String password) {
DirContext ctx=
Hashtable&String,String& HashEnv = new Hashtable&String,String&();
HashEnv.put(Context.SECURITY_AUTHENTICATION, "simple"); // LDAP访问安全级别(none,simple,strong)
HashEnv.put(Context.SECURITY_PRINCIPAL, username); //AD的用户名
HashEnv.put(Context.SECURITY_CREDENTIALS, password); //AD的密码
HashEnv.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); // LDAP工厂类
HashEnv.put("com.sun.jndi.ldap.connect.timeout", "3000");//连接超时设置为3秒
HashEnv.put(Context.PROVIDER_URL, "ldap://" + host + ":" + post);// 默认端口389
ctx = new InitialDirContext(HashEnv);// 初始化上下文
System.out.println("身份验证成功!");
} catch (AuthenticationException e) {
System.out.println("身份验证失败!");
e.printStackTrace();
} catch (municationException e) {
System.out.println("AD域连接失败!");
e.printStackTrace();
} catch (Exception e) {
System.out.println("身份验证未知异常!");
e.printStackTrace();
} finally{
if(null!=ctx){
ctx.close();
} catch (Exception e) {
e.printStackTrace();
public static void main(String[] args) {
AdTest.connect("10.10.2.116", "389", "", "123456");
代码到此结束了,看看运行效果吧:
欢迎大家关注我的博客!如有疑问,请加QQ群:共同学习!
版权声明:本文内容由互联网用户自发贡献,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至: 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】红轴机械键盘、无线鼠标等753个大奖,先到先得,云栖社区首届博主招募大赛9月21日-11月20日限时开启,为你再添一个高端技术交流场所&&
服务底层使用经国家密码管理局检测认证的硬件密码机,通过虚拟化技术,帮助用户满足数据安全方面的监管合规要求,保护云...
数据风控由阿里聚安全提供,是基于阿里大数据计算能力,通过业内领先的风险决策引擎,解决企业账号、活动、交易等关键业...
阿里云数加提供了大量的大数据产品,包括大数据基础服务、数据分析及展现、数据应用、人工智能等产品与服务。这些产品均...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
阿里云双11狂欢,不只是5折
Loading...

我要回帖

更多关于 .net 获取当前域名 的文章

 

随机推荐