- 浏览: 436943 次
- 性别:
- 来自: 唐山
文章分类
最新评论
-
hautbbs:
谢谢分享!
ASP.NET 导出Excel 和csv -
hautbbs:
感谢分享!
ASP.NET 导出Excel乱码的终极解决 -
wyf:
zcl920 写道只能说 看不懂。要发就发全 取一段出来 有什 ...
图片上绘制文字换行处理 -
zcl920:
只能说 看不懂。要发就发全 取一段出来 有什么用。
图片上绘制文字换行处理 -
380086154:
有用,谢谢。
js比较日期
第一个类,获取AD实例类; AdHerlp.cs public static class AdHerlp { #region 创建AD连接 /// <summary> /// 创建AD连接 /// </summary> /// <returns></returns> public static DirectoryEntry GetDirectoryEntry() { DirectoryEntry de = new DirectoryEntry(); de.Path = "LDAP://qjyczsgl/CN=Users,DC=qjyczsgl,DC=com"; de.Username = @"qjyczsgl\zsgl"; de.Password = "qjyczsgl"; return de; } #endregion #region 获取目录实体集合 /// <summary> /// /// </summary> /// <param name="DomainReference"></param> /// <returns></returns> public static DirectoryEntry GetDirectoryEntry(string DomainReference) { DirectoryEntry entry = new DirectoryEntry("LDAP://qjyczsgl" + DomainReference, "zsgl", "qjyczsgl", AuthenticationTypes.Secure); return entry; } #endregion } AD操作类 myDirectory.cs class myDirectory { /// <summary> /// 判断用户是否存在 /// </summary> /// <param name="UserName"></param> /// <returns></returns> public bool UserExists(string UserName) { DirectoryEntry de = AdHerlp.GetDirectoryEntry(); DirectorySearcher deSearch = new DirectorySearcher(); deSearch.SearchRoot = de; deSearch.Filter = "(&(objectClass=user) (cn=" + UserName + "))"; SearchResultCollection results = deSearch.FindAll(); if (results.Count == 0) { return false; } else { return true; } } /// <summary> /// 修改用户属性 /// </summary> /// <param name="de"></param> /// <param name="PropertyName"></param> /// <param name="PropertyValue"></param> public static void SetProperty(DirectoryEntry de, string PropertyName, string PropertyValue) { if (PropertyValue != null) { if (de.Properties.Contains(PropertyName)) { de.Properties[PropertyName][0] = PropertyValue; } else { de.Properties[PropertyName].Add(PropertyValue); } } } /// <summary> /// 生成随机密码 /// </summary> /// <returns></returns> public string SetSecurePassword() { //RandomPassword rp = new RandomPassword(); return RandomPassword.Generate(8, 8); } /// <summary> /// 设置用户新密码 /// </summary> /// <param name="path"></param> public void SetPassword(string path) { DirectoryEntry usr = new DirectoryEntry(); usr.Path = path; usr.AuthenticationType = AuthenticationTypes.Secure; object[] password = new object[] { SetSecurePassword() }; object ret = usr.Invoke("SetPassword", password); usr.CommitChanges(); usr.Close(); } /// <summary> /// 启用用户帐号 /// </summary> /// <param name="de"></param> private static void EnableAccount(DirectoryEntry de) { //UF_DONT_EXPIRE_PASSWD 0x10000 int exp = (int)de.Properties["userAccountControl"].Value; de.Properties["userAccountControl"].Value = exp | 0x0001; de.CommitChanges(); //UF_ACCOUNTDISABLE 0x0002 int val = (int)de.Properties["userAccountControl"].Value; de.Properties["userAccountControl"].Value = val & ~0x0002; de.CommitChanges(); } /// <summary> /// 添加用户到组 /// </summary> /// <param name="de"></param> /// <param name="deUser"></param> /// <param name="GroupName"></param> public static void AddUserToGroup(DirectoryEntry de, DirectoryEntry deUser, string GroupName) { DirectorySearcher deSearch = new DirectorySearcher(); deSearch.SearchRoot = de; deSearch.Filter = "(&(objectClass=group) (cn=" + GroupName + "))"; SearchResultCollection results = deSearch.FindAll(); bool isGroupMember = false; if (results.Count > 0) { DirectoryEntry group = AdHerlp.GetDirectoryEntry(results[0].Path); object members = group.Invoke("Members", null); foreach (object member in (IEnumerable)members) { DirectoryEntry x = new DirectoryEntry(member); if (x.Name != deUser.Name) { isGroupMember = false; } else { isGroupMember = true; break; } } if (!isGroupMember) { group.Invoke("Add", new object[] { deUser.Path.ToString() }); } group.Close(); } return; } /// <summary> /// 创建一个新用户 /// </summary> /// <param name="employeeID"></param> /// <param name="name"></param> /// <param name="login"></param> /// <param name="email"></param> /// <param name="group"></param> public void CreateNewUser(string employeeID, string name, string login, string email, string group) { //Catalog catalog = new Catalog(); DirectoryEntry de =AdHerlp.GetDirectoryEntry(); /// 1. Create user account DirectoryEntries users = de.Children; DirectoryEntry newuser = users.Add("CN=" + login, "user"); /// 2. Set properties SetProperty(newuser, "employeeID", employeeID); SetProperty(newuser, "givenname", name); SetProperty(newuser, "SAMAccountName", login); SetProperty(newuser, "userPrincipalName", login); SetProperty(newuser, "mail", email); newuser.CommitChanges(); /// 3. Set password SetPassword(newuser.Path); newuser.CommitChanges(); /// 4. Enable account EnableAccount(newuser); /// 5. Add user account to groups AddUserToGroup(de, newuser, group); /// 6. Create a mailbox in Microsoft Exchange //GenerateMailBox(login); newuser.Close(); de.Close(); } /// <summary> /// 禁用一个帐号 /// </summary> /// <param name="EmployeeID"></param> public void DisableAccount(string EmployeeID) { DirectoryEntry de =AdHerlp.GetDirectoryEntry(); DirectorySearcher ds = new DirectorySearcher(de); ds.Filter = "(&(objectCategory=Person)(objectClass=user)(employeeID=" + EmployeeID + "))"; ds.SearchScope = SearchScope.Subtree; SearchResult results = ds.FindOne(); if (results != null) { DirectoryEntry dey = AdHerlp.GetDirectoryEntry(results.Path); int val = (int)dey.Properties["userAccountControl"].Value; dey.Properties["userAccountControl"].Value = val | 0x0002; dey.Properties["msExchHideFromAddressLists"].Value = "TRUE"; dey.CommitChanges(); dey.Close(); } de.Close(); } /// <summary> /// 修改用户信息 /// </summary> /// <param name="employeeID"></param> /// <param name="department"></param> /// <param name="title"></param> /// <param name="company"></param> public void ModifyUser(string employeeID, string department, string title, string company) { DirectoryEntry de = AdHerlp.GetDirectoryEntry(); DirectorySearcher ds = new DirectorySearcher(de); ds.Filter = "(&(objectCategory=Person)(objectClass=user)(employeeID=" + employeeID + "))"; ds.SearchScope = SearchScope.Subtree; SearchResult results = ds.FindOne(); if (results != null) { DirectoryEntry dey = AdHerlp.GetDirectoryEntry(results.Path); SetProperty(dey, "department", department); SetProperty(dey, "title", title); SetProperty(dey, "company", company); dey.CommitChanges(); dey.Close(); } de.Close(); } /// <summary> /// 检验Email格式是否正确 /// </summary> /// <param name="mail"></param> /// <returns></returns> public bool IsEmail(string mail) { Regex mailPattern = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"); return mailPattern.IsMatch(mail); } /// <summary> /// 搜索被修改过的用户 /// </summary> /// <param name="fromdate"></param> /// <returns></returns> public DataTable GetModifiedUsers(DateTime fromdate) { DataTable dt = new DataTable(); dt.Columns.Add("EmployeeID"); dt.Columns.Add("Name"); dt.Columns.Add("Email"); DirectoryEntry de = AdHerlp.GetDirectoryEntry(); DirectorySearcher ds = new DirectorySearcher(de); StringBuilder filter = new StringBuilder(); filter.Append("(&(objectCategory=Person)(objectClass=user)(whenChanged>="); filter.Append(ToADDateString(fromdate)); filter.Append("))"); ds.Filter = filter.ToString(); ds.SearchScope = SearchScope.Subtree; SearchResultCollection results = ds.FindAll(); foreach (SearchResult result in results) { DataRow dr = dt.NewRow(); DirectoryEntry dey = AdHerlp.GetDirectoryEntry(result.Path); dr["EmployeeID"] = dey.Properties["employeeID"].Value; dr["Name"] = dey.Properties["givenname"].Value; dr["Email"] = dey.Properties["mail"].Value; dt.Rows.Add(dr); dey.Close(); } de.Close(); return dt; } /// <summary> /// 格式化AD的时间 /// </summary> /// <param name="date"></param> /// <returns></returns> public string ToADDateString(DateTime date) { string year = date.Year.ToString(); int month = date.Month; int day = date.Day; StringBuilder sb = new StringBuilder(); sb.Append(year); if (month < 10) { sb.Append("0"); } sb.Append(month.ToString()); if (day < 10) { sb.Append("0"); } sb.Append(day.ToString()); sb.Append("000000.0Z"); return sb.ToString(); } }
发表评论
-
登录时记住用户名密码的实现方式
2019-06-12 15:11 3039登录的时候记住用户 ... -
CAS 实现单点登录 .NET MVC
2016-05-24 17:14 1134http://www.cnblogs.com/woxpp/p ... -
.NET开发邮件发送功能的全面教程(含邮件组件源码)
2015-03-31 09:43 1174原文地址:http://www.cnblogs.com/he ... -
开发Web组合
2015-01-04 11:39 6161、数据库操作 ORM-Dapper 2、前台界面布局采 ... -
基于 Bootstrap 构建的网站
2014-12-14 14:12 640文档,下载地址:http://v3.bootcss.com ... -
iis8 默认不支持svc解决方法
2014-09-18 18:57 782以下内容对于使用WIN2012 部署V9的时候使用。 ... -
C# 连接Oracle(利用ODP.net,不安装oracle客户端)
2014-07-11 09:37 1698C# 连接Oracle(利用ODP.net,不安装oracl ... -
C# Attribute 特性,过期特性
2014-05-27 15:18 1852通过下列过程将属性应用到代码元素。 通过从 .NE ... -
.NET画实时直方图
2011-12-30 09:37 924using System; using System.Col ... -
设置combobx选中项
2011-12-21 15:20 1036cbRole.SelectedIndex = cbRole.I ... -
文档树状结构化目录管理方法
2011-12-20 09:50 2202本文适用于附件(各类文档、图片和压缩包等,下同)比较多的 ... -
.StringTemplate替换模板
2011-11-03 10:19 1252官方下载 www.StringTemplate. ... -
WCF-IErrorHandler
2011-10-11 16:30 1060使用 IErrorHandler 接口,我们可以更深入地 ... -
ADODB.Stream instead of Scripting.FileSystemObject.
2011-07-04 08:55 1249In a Silverlight 4 OOB App (eve ... -
Scripting.FileSystemObject对象的详细技巧指南
2011-07-03 23:39 1052Scripting.FileSystemObject对象的 ... -
Stream 和 byte[] 之间的转换
2011-07-02 16:52 1078/* - - - - - - - - - - - - - ... -
常用正则表达式
2011-06-15 20:17 798正则表达式用于字符 ... -
DynamicMethod 类
2011-05-11 22:51 1166public delegate String MyMetho ... -
一个通用的快速反射方法(A General Fast Method Invoker)
2011-04-13 22:01 1532普通反射方法 MethodInfo methodIn ... -
C#操作IIS(转)可以写一个工具自己配置网站
2011-03-24 21:08 2271using System; using System.Dir ...
相关推荐
在实际应用中,AD5933常被用于生物医学领域,例如心电信号分析、细胞阻抗监测和生物组织的阻抗成像。在电化学领域,它可以用于电池和燃料电池的研究,以及腐蚀监测。在材料科学中,AD5933可用于检测材料的介电性质和...
在"用户导入"这个压缩包文件中,可能包含了用于演示或参考的Excel模板、PowerShell脚本或其他辅助材料,帮助用户理解如何有效地进行AD用户批量导入操作。使用这些资源,IT管理员可以更加便捷地管理AD用户,提高工作...
AD域配置详解主要涉及到微软的Active Directory(活动目录)服务,它是一个基于目录的...这些内容不仅有助于初学者理解AD域的基本概念和作用,同时也对希望提高AD域管理效率和安全性经验丰富的IT专业人员提供了参考。
**AD域控制(Active Directory Domain Services)是微软Windows Server操作系统中的关键组件,它提供了一种组织和管理网络资源的方法。AD域控使得企业能够集中管理用户账户、计算机、打印机等对象,实现身份验证、...
**AD域服务器Windows Server 2008 AD架构** 在IT行业中,Active Directory(AD)域服务器是企业网络管理的核心组件。...这些文档详细介绍了Windows Server 2008 AD架构的各个方面,对IT管理员来说是宝贵的参考资料。
在IT领域,活动目录(Active Directory, AD)是Windows Server操作系统中的核心组件,用于管理网络资源、用户账户和权限。AD域控制器是AD环境中的关键节点,负责执行身份验证、授权和目录服务。本教程特别关注AD域...
AD是微软Windows Server操作系统中的关键组件,用于管理和组织网络资源,如用户账户、计算机账户、安全策略以及各种网络服务。以下是四个文件的详细内容: 1. **AD09教程**: 这部分教程主要针对AD的第九个版本,...
3. **文档**:可能包含数据手册、用户指南、应用笔记等,详细解释了芯片的功能、操作方式和注意事项。 4. **配置文件**:可能包含配置寄存器设置的文件,用于设置芯片的工作模式和参数。 5. **测试脚本**:用于...
本文将深入探讨如何使用Java通过LDAP(轻量级目录访问协议)和SSL(安全套接层)来实现用户和组织(部门)的增删改查操作,并结合证书确保通信的安全性。这些功能通常用于大型企业的用户管理,例如Active Directory...
本篇文章是关于批量添加域用户操作的实战参考。首先,我们需要了解一些基础知识。 1. Active Directory(简称AD)是一个基于目录的服务,用于存储关于网络上的对象(如用户、组和计算机)的信息。它主要用于用户...
这个压缩包内容对于深入了解和操作深信服AD环境,尤其是对于准备认证考试或提升实际操作技能的IT专业人员来说,是非常有价值的参考资料。通过实践和学习这些高级实验答案,可以增强对AD的深入理解,提升在企业环境中...
活动目录(Active Directory,简称AD)是微软Windows Server操作系统提供的一项核心服务,它使用目录服务对网络资源进行组织和管理。AD允许管理员和用户轻松地查找和使用资源,同时也增强了企业内部的安全性。以下是...
描述中提到,驱动源码采用了面向对象编程(OOP)思想,这意味着代码被组织成类和对象,具有封装、继承和多态性等特性,使代码更易于理解和维护。此外,源码是基于HAL库编写的,HAL(Hardware Abstraction Layer,...
- **Active Directory**:对于大型企业来说,可以通过AD进行集中化的用户管理和权限控制。 - **IAM服务**:云平台提供的身份与访问管理服务(如AWS IAM)可以帮助管理员更精细地控制用户权限。 ### 三、注意事项 #...
AD服务器日常维护是指管理员对AD服务器的日常维护和维修,以确保AD服务器的稳定运行。管理员需要了解AD服务器日常维护方法和步骤,以避免影响AD域的安全性和稳定性。 本手册提供了AD维护的综合指南,涵盖了AD的基础...
标题中的“需要导入AD的数据库.rar”表明这是一个与Active Directory(AD)相关的数据库文件,通常用于存储和管理组织内的用户账户、计算机账户以及其他资源的安全信息。这个压缩包可能包含一个或多个数据库文件,...
5. **创建AD用户**:在“AD用户和计算机”中,创建新的用户账户,设置登录名和复杂密码,并分配权限。 6. **客户端配置**:客户端机器需要配置静态IP地址,指定DNS服务器为AD服务器IP,如192.168.13.100。 7. **...
AD6.0是微软Windows Server操作系统的核心组件,用于构建和管理网络中的身份和访问权限,它提供了集中式目录服务,便于组织管理和控制网络资源。 在AD6.0中,我们首先会接触到的是安装和配置过程。这包括设置域控制...
在IT领域,活动目录(Active Directory,简称AD)是一种用于管理网络环境的分布式数据库系统,由微软公司开发。它主要用于存储网络对象的...请参考提供的“域控制器建立教程.doc”文件,了解更多详细信息和操作指南。
这样的组织方式对于初学者来说尤其友好,能够帮助他们快速理解和掌握软件的操作流程。 Altium Designer的核心功能包括: 1. 原理图设计:提供直观的界面和丰富的库元件,设计师可以绘制复杂的电路原理图。同时,...