DEMO程序连接到域控服务器( C#开发AD域控自动工具之二)
DEMO程序 创建一个用户( C#开发AD域控自动工具之三)
第一个需求,登陆名称绑定计算机名( C#开发AD域控自动工具之四)
对用户按条件添加一个工作站的绑定( C#开发AD域控自动工具之六)
开发环境:VS2017 .net framework 4.7.2
域控服务器:WIN2008R2 SERVER
打开VS2017,新建一个WINFORM项目。
我们放上一个TAB控件,把2个页签改成:用户、组织OU
在“用户”页签,我们放一个toolstripContainer,在容器中再放入SplitContainer,然后上面放一个工具栏,下面放一个状态栏。
左边放一个listbox用来显示日志文本,右边放一堆demo按钮。
登陆域控服务器的用户、密码等等参数,我放到WINFORM自己带的config文件中:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<appSettings>
<add key ="AD_admin" value="administrator"></add>
<add key ="AD_password" value="Test123456789"></add>
<add key ="AD_LDAP" value="LDAP://192.168.155.250"></add>
<add key ="AD_DC1" value="adserv"></add>
<add key ="AD_DC2" value="com"></add>
</appSettings>
</configuration>
要用系统功能来读App.config文件,我们要添加一个系统的引用:
我们还要在头文件声明一下引用:
程序加载的时候,我们把域控的参数,都放到全局变量中:
我们还需要引用一个系统的类库来操作AD:System.DirectoryServices,引用方法同上面的使用config功能一样。
为了能够去修改用户的密码,在后面我们还要作第三个引用,后面遇到再写。
然后我们作一个函数去连接域控服务器:
private void IsConnected(string domainName, string userName, string userPwd)
{
try
{
DirectoryEntry domain = new DirectoryEntry();
domain.Path = domainName;
domain.Username = userName;
domain.Password = userPwd;
domain.AuthenticationType = AuthenticationTypes.Secure;
domain.RefreshCache();
ps(listBox1, "AD服务器连接成功");
}
catch (Exception ex)
{
ps(listBox1, ex.Message);
}
}
public void ps(ListBox box, string s)
{
String line = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " " + s;
box.Items.Add(line);
}
好了,我们把这个函数放到按钮中,运行一下,程序卡住了。
原来,AD域控服务器虚拟机还没有开起来,把域控服务器打开。
再点一下按钮,OK,AD域服务器连接成功。