.net – 为什么使用DirectoryEntry对LDAP进行身份验证会间歇性地抛出COMException(0x8
|
如果有人有类似的故事,请在下面发布详细信息! 我正在构建一个需要支持LDAP身份验证的ASP.NET网站. 在Windows上,可以通过Active Directory执行LDAP身份验证(我不是专家,但AD似乎只是ldap的特殊风格).我不控制AD和/或LDAP服务器. 我尝试了各种身份验证方法,但我已经确定每次身份验证尝试使用一个DirectoryEntry: using (DirectoryEntry de = new DirectoryEntry(ldapPath,ldapUsername,password,AuthenticationTypes.ServerBind)) {
try {
// Bind to the native AdsObject to force authentication.
object obj = de.NativeObject;//not IDisposable
} catch(...
如果出现任何错误,检索NativeObject会导致COMException,例如,如果身份验证失败,则异常类似于“登录失败:未知用户名或密码错误”,如果ldap服务器无法访问或超时,则类似“服务器无法运行.“ 这基本上是有效的,但是在可变天数之后,总是从早上开始,我们得到“服务器无法运行”.直到IIS重新启动.这显然不是一个很好的长期解决方案,但据我所知,错误在于DirectoryEntry下的Com Object – 不是一件容易修复的事情. This problem isn’t new or unknown.有些人通过微软的支持得到了不同的结果;基本上答案似乎归结为“采取你的ldap路径,并创建一些等效的替代品,也许其中一个将工作”.每次尝试,或者当然,你几天都不知道它是否真的有效,并且在找到真正的解决方案之前,我们回到“每晚重启Windows服务器”. 首先,我尝试了格式化的ldap路径 * "LDAP://server.uri:636" * "LDAP://insecure.server.uri:389" * "LDAP://server.uri:636/cn=username,ou=staff,o=myOrganisation,c=org" 始终使用具有以下模式的用户名: * "cn=username,c=org" 所有这些方法最初都有效,但在可变天数后失败(并在IIS重置后开始工作).服务器在win 2k3上运行IIS6. 如果其他人有这些问题,请在下面发布,也许最终我们会找到一个可以使用的模式,或者有足够数量的例子来说服微软解决这个问题. 解决方法虽然我无法准确找出导致此问题的原因,但似乎必须在迁移到非群集服务器后停止.关于这个bug有其他奇怪的事实: >重新启动asp.net主机进程不足以解决问题.这很奇怪;你希望操作系统强行释放进程死亡的资源 总而言之,这看起来非常像win2k3中启用了群集的驱动程序或内核问题,而不是.NET相关问题. 因此,如果其他人偶然发现类似的问题,请检查群集是否已启用 – 这可能会让您免于数周的麻烦. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – Asp.Net MVC Ajax.BeginForm没有通过Ajax提
- asp.net-core – ASP.NET Core 1.0 SynchronizationContext
- ASP.NET搜索引擎
- asp.net – NuGet:’X’已经有一个依赖定义为’Y’
- asp.net-mvc – 允许asp.net mvc 2控制器名称的URL中的连字
- asp.net-mvc – 在Asp.Net MVC中使用混合身份验证(Forms,FB
- .net – 在IIS中部署.PDB文件 任何好处?
- asp.net-mvc-3 – 子动作是否与其“父母”动作共享相同的Vi
- asp.net-mvc – WebApi是否支持开箱即用的application / x-
- ASP.NET浏览器显示“网页已过期”的后退按钮(回发后)
- asp.net-mvc – 如何通过Resharper 8.2.1停止INC
- asp.net – 多个Application_Start事件触发
- asp.net – App.Config和Web.Config之间的区别?
- asp.net-mvc – UpdateModel前缀 – ASP.NET MVC
- asp.net-web-api – 在Web Api / Owin架构中,处理
- asp.net – 检查Active Directory密码是否与cook
- asp.net – 生成第二个标题标签的母版页
- asp.net – 外键在VS2012 RC中未被识别
- asp.net-mvc – ASP.NET MVC / IIS 7.5:500内部
- asp.net-mvc – 传统的ASP.NET Web窗体与MVC
