从ASP.NET应用程序使用Active Directory时,DirectoryServicesCOMExceptio
介绍 我正在维护一个查询Active Directory的旧版ASP.NET 3.5应用程序.该应用程序使用“集成Windows身份验证”,旨在使用自己的安全上下文而不是专用的用户名和密码连接到Active Directory. 这是相关的代码. using (DirectoryEntry root = new DirectoryEntry()) using (DirectorySearcher searcher = new DirectorySearcher(root)) { searcher.Filter = string.Format("(&(samAccountName={0})(objectClass=user)(objectCategory=person))",userName.Trim()); SearchResultCollection results = searcher.FindAll(); } 虽然它使用ASP.NET 3.5,但由于现有的基础结构限制,它需要从ASP.NET 4.0应用程序池中运行. 问题 在某些情况下,对FindAll的调用会引发以下异常:
当我使用Visual Studio调试器检查异常对象时,ExtendedErrorMessage属性包含更详细的信息:
以下屏幕截图显示了Visual Studio调试器中的内容: 什么有用 我找到了一些解决方法来完成这项工作,但我不能接受它们: >禁用集成Windows身份验证,而不是使用基本身份验证. 什么行不通 我从互联网上找到了一些建议,但没有一个完全解决了这个问题: >使用HostingEnvironment.Impersonate(). 我想要的是 我想在不必重新配置Active Directory中的任何内容的情况下完成这项工作.它在某些IIS配置下工作正常,如上所示,所以我认为应该可以通过重新配置应用程序或IIS(除了更改.NET框架版本)来使其工作. 解决方法我认为问题有多种原因:>使用ASP.NET模拟. 要解决第二个问题,请将应用程序升级到ASP.NET 4.0或将IIS配置为使用ASP.NET 2.0. (编辑:百色站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 利用ASP.NET MVC和Bootstrap快速搭建个人博客之后台dataTab
- asp.net – 适用于多个用户的EWS通知中心
- asp.net Ajax之无刷新评论介绍
- asp.net-mvc – ASP.NET Web Api – 将对象发布到自定义动作
- asp.net – Tridion分析和个性化错误:用户不能为空.请确保
- 如何在asp.net会员中手动更改密码?
- asp.net – Visual Studio – 为什么.ASPX文件比.ASPX.CS文
- asp.net-mvc – 从视图到控制器POST信用卡数据是否安全?
- ASP.NET清空缓存时遇到的问题简析
- asp.net – 为每个网站/应用程序创建单独的IIS应用程序池的
- ASP.NET(C#)应用程序配置文件app.config/web.con
- ASP.NET MVC 4和Razor 2:View引擎不再支持xml?
- asp.net-mvc-2 – ASP.NET MVC 2并列为隐藏值?
- 只需发布已修改的控制器,模型和ASP.NET MVC项目的
- asp.net-mvc – MVC 5 OWIN登录声明和Antiforger
- asp.net 文件上传实例汇总
- ASP.NET MVC AJAX文档在哪里?
- asp.net-mvc – 允许asp.net mvc 2控制器名称的U
- asp.net-mvc – 值不能为空或为空.参数名称:con
- asp.net-mvc – ELMAH和SQL Server 2008 R2?