C# 操作Windows Server 2003 AD域 常见异常与错误

原创 2011年01月26日 19:09:00

 

这个异常的原因是LDAP的path没有写正确  应该是域名的问题

System.DirectoryServices.DirectoryServicesCOMException was caught
  Message=从服务器返回了一个参照。

  Source=System.DirectoryServices
  ErrorCode=-2147016661
  ExtendedError=8235
  ExtendedErrorMessage=0000202B: RefErr: DSID-031006E0, data 0, 1 access points
    ref 1: 'bdxy'

  StackTrace:
       at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
       at System.DirectoryServices.DirectoryEntry.Bind()
       at System.DirectoryServices.DirectoryEntry.RefreshCache()
       at System.DirectoryServices.DirectoryEntry.FillCache(String propertyName)
       at System.DirectoryServices.PropertyCollection.KeysCollection.GetEnumerator()
       at WFAOPAD.ADForm.AccsesAD(String path, String account, String pwd) in D:/我的文档/Visual Studio 2010/Projects/wfaAD/WFAOPAD/ADForm.cs:line 30
  InnerException:



这个异常原因是LDAP的path没有写正确  应该是DN的问题
System.Runtime.InteropServices.COMException was caught
  Message=Unknown error (0x80005000)
  Source=System.DirectoryServices
  ErrorCode=-2147463168
  StackTrace:
       at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
       at System.DirectoryServices.DirectoryEntry.Bind()
       at System.DirectoryServices.DirectoryEntry.RefreshCache()
       at System.DirectoryServices.DirectoryEntry.FillCache(String propertyName)
       at System.DirectoryServices.PropertyCollection.KeysCollection.GetEnumerator()
       at WFAOPAD.ADForm.AccsesAD(String path, String account, String pwd) in D:/我的文档/Visual Studio 2010/Projects/wfaAD/WFAOPAD/ADForm.cs:line 30
  InnerException:



System.Reflection.TargetInvocationException was caught
  Message=Exception has been thrown by the target of an invocation.
  Source=System.DirectoryServices
  StackTrace:
       at System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args)
       at WFAOPAD.ADForm.AddADAccount(String path, String account, String password, String addUser, String addPwd) in D:/我的文档/Visual Studio 2010/Projects/wfaAD/WFAOPAD/ADForm.cs:line 183
  InnerException: System.IO.FileNotFoundException
       Message=文件名、目录名或卷标语法不正确。 (Exception from HRESULT: 0x8007007B)
       Source=""
       InnerException:


端口号 异常的问题    解决方案 不要ad默认端口号  我觉得调用的不是默认端口号


这个异常的问题是 LDAP访问的path不对

System.DirectoryServices.DirectoryServicesCOMException was unhandled
  Message=在服务器上没有这样一个对象。 (Exception from HRESULT: 0x80072030)
  Source=System.DirectoryServices
  ErrorCode=-2147016656
  ExtendedError=8333
  ExtendedErrorMessage=0000208D: NameErr: DSID-031001CD, problem 2001 (NO_OBJECT), data 0, best match of:
    'CN=Users,DC=bdxy,DC=com'

  StackTrace:
       at System.DirectoryServices.DirectoryEntries.Find(String name, String schemaClassName)
       at WFAOPAD.ADForm.btnUse_Click(Object sender, EventArgs e) in D:/我的文档/Visual Studio 2010/Projects/wfaAD/WFAOPAD/ADForm.cs:line 230
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(Form mainForm)
       at WFAOPAD.Program.Main() in D:/我的文档/Visual Studio 2010/Projects/wfaAD/WFAOPAD/Program.cs:line 18
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException:


重命名语法的问题

System.DirectoryServices.DirectoryServicesCOMException was caught
  Message=指定了一个无效的 dn 语法。 (Exception from HRESULT: 0x80072032)
  Source=System.DirectoryServices
  ErrorCode=-2147016654
  ExtendedError=8335
  ExtendedErrorMessage=0000208F: NameErr: DSID-031001BA, problem 2006 (BAD_NAME), data 8350, best match of:
    '123456,OU=net,OU=jskf,OU=bdxyxx,DC=bdxy,DC=com'

  StackTrace:
       at System.DirectoryServices.DirectoryEntry.MoveTo(DirectoryEntry newParent, String newName)
       at System.DirectoryServices.DirectoryEntry.Rename(String newName)
       at OperateADLibrary.OperateAD.RenameUser(String oldUserName, String newUserName) in D:/我的文档/Visual Studio 2010/Projects/wfaAD/OperateADLibrary/OperateAD.cs:line 117
  InnerException:



密码不正确

System.Reflection.TargetInvocationException was caught
  Message=Exception has been thrown by the target of an invocation.
  Source=System.DirectoryServices
  StackTrace:
       at System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args)
       at OperateADLibrary.OperateAD.ChangePassword(String username, String oldpwd, String newpwd) in D:/我的文档/Visual Studio 2010/Projects/wfaAD/OperateADLibrary/OperateAD.cs:line 180
  InnerException: System.Runtime.InteropServices.COMException
       Message=指定的网络密码不正确。 (Exception from HRESULT: 0x80070056)
       Source=""
       ErrorCode=-2147024810
       InnerException:

最后的一个总结是, 大部分的出错原因是LDAP的访问语法书写错误,而且很多的操作都在代码里体会就明白,和数据库的操作很类似。

 

用ldap方式访问AD域的的错误一般会如下格式:
LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 52e, vece
其中红字部分的意思如下:
525 - 用户没有找到
52e - 证书不正确
530 - not permitted to logon at this time
532 - 密码期满
533 - 帐户不可用
701 - 账户期满
773 - 用户必须重设密码

DirectoryEntry 对象

DirectoryEntry 对象在 System.DirectoryServices 中,目录中的每个对象都由 DirectoryEntry 对象表示。DirectoryEntry 在内存中创建一个...
  • younghaiqing
  • younghaiqing
  • 2017年03月03日 14:24
  • 471

DirectoryEntry使用-实现域登录

直接看域登录核心代码 //需要引用System.DirectoryService.dll //name域管理员账号,key域管理员密码,ldapPath:域路径比如:LDAP://baidu.com...
  • zhuqinfeng
  • zhuqinfeng
  • 2017年06月15日 15:49
  • 190

DirectoryEntry IIS操作

上面代码都是通过网上资料查找,自己总合到一个类中.这个类对于IIS的增/删/改/查都可以.把代码共享出来,希望对这方面的人有帮助.... 建议使用"Microsoft.Web.Administrati...
  • qq254331474
  • qq254331474
  • 2016年11月23日 11:25
  • 589

C#修改电脑密码,重置电脑密码DirectoryEntry实现

http://www.fangsi.net/archives/249.html 鉴于此方法功力强大请各位武林好汉不要拿来做坏事哟,下面进入正题。 C#修改电脑密码方法如下: ...
  • ttgzs
  • ttgzs
  • 2013年08月07日 08:30
  • 728

asp.net操作AD的问题

1、 在ASP.NET中, 启用Windows集成验证,这样我们就有了登陆网页的用户名和密码的哈希版本,但是我们是不能直接使用的,因为是密码的哈希版本,而不是密码本身。 比如: System.D...
  • cdefg198
  • cdefg198
  • 2012年10月17日 17:21
  • 5993

12C ORA-错误汇总16 ORA-40001 to ORA-40556

ORA-40001: value for string must be greater than zero Cause: The input parameter in question has a ...
  • notbaron
  • notbaron
  • 2016年03月02日 21:50
  • 31276

c# 使用DirectoryEntry DirectorySearcher 获取域信息

visual studio 如何知道有没有打上SP1  HKEY_LOCAL_MACHINE/Software/Microsoft/DevDiv[ProductFamily]/Servicing/9....
  • tianye0118
  • tianye0118
  • 2010年04月30日 15:58
  • 1348

使用DirectoryEntry进行 IIS 操作

public class IISAdmin {     #region  建IIS站点方法1 (缺点 不能启动站点)     //    public static int CreateW...
  • wu_qionglei
  • wu_qionglei
  • 2011年08月12日 16:29
  • 3269

通过WEB方式添加AD用户的问题

最近在做LCS开发时,做了一套WEB方式的管理系统,专门用于AD用户的管理。在开发中碰到了一些问题,现在和大家一起分享一下系统环境:windows server 2003 enterprise+iis...
  • pengpai01
  • pengpai01
  • 2007年03月30日 16:10
  • 1501
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 操作Windows Server 2003 AD域 常见异常与错误
举报原因:
原因补充:

(最多只允许输入30个字)