gpt4 book ai didi

c# - 更改为 Comcast 后的 ActiveDirectoryMembershipProvider "The specified domain or server could not be contacted"

转载 作者:行者123 更新时间:2023-11-30 12:52:37 25 4
gpt4 key购买 nike

我公司最近从专用 T-1 连接改为宽带业务 Comcast 连接。紧接着,这个问题就开始了。

我们的开发机器是本地的,但我们的 Active Directory 服务器(用于在部署前测试和暂存产品)是位于 Rackspace 的公共(public)云实例。开发机器未连接到域。

我们使用 ActiveDirectoryMembershipProvider 和基于表单的身份验证 - 以及身份验证完成后应用程序本身内的 LDAP 查询。

我们已经使用此配置几个月了 - 没问题。

更改为 Comcast 之后 - 一切似乎都正常工作,除了这个。当我们尝试在本地运行应用程序时,出现上述错误。

“/Web.NEPA”应用程序中的服务器错误。
-------------------------------------------- ----------------------------------

配置错误说明:处理此请求所需的配置文件时出错。请查看下面的具体错误详细信息并适当修改您的配置文件。

解析器错误消息:无法联系指定的域或服务器。

来源错误:

第 4 行:第 5 行:第 7 行:connectionStringName="LdapService"第 8 行:attributeMapUsername="SAMAccountName"

源文件:C:\dev\EMSolution\branches\3.4.0.0\Web.NEPA\App_Config\Testing\3.4.0.0\NEPAARNG\System.Web.Membership.config 行:6

-------------------------------------------- ------------------------------------版本信息:Microsoft .NET Framework 版本:2.0.50727.4952; ASP.NET 版本:2.0.50727.4955

我已经确定这不是 Rackspace 方面的防火墙问题(通过完全关闭它并尝试连接)。我还创建了一个测试程序来对我们的 AD 实例运行 LDAP 查询 - 效果很好。

--- 这里是一些引用的项目:

<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">  
<providers>
<add name="AspNetActiveDirectoryMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LdapService"
attributeMapUsername="SAMAccountName"
connectionUsername="DEV1\emsutil"
connectionPassword="*****"
connectionProtection="None"
requiresQuestionAndAnswer="false"
minRequiredPasswordLength="4"
minRequiredNonalphanumericCharacters="0"
enableSearchMethods="true"/>
</providers>
</membership>

<connectionStrings>
<add name="LdapService" connectionString="LDAP://cloud1.dev1/DC=dev1" />
</connectionStrings>

--- 测试程序是否正常工作:

using System;
using System.DirectoryServices;

namespace ldaptest
{
internal class Program
{
private static void Main(string[] args)
{
DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://cloud1.dev1/DC=dev1";
de.Username = "emsutil@dev1";
de.Password = "*****";

DirectorySearcher srch = new DirectorySearcher(de);
srch.Filter = "(objectClass=user)";

using (SearchResultCollection results = srch.FindAll())
{
foreach (SearchResult res in results)
{
Console.WriteLine("\t{0}", res.Path);
}
}

Console.ReadKey();
}
}
}

最佳答案

我以前见过类似的问题,我认为 Comcast 可能是您问题的根源。

Comcast 有一个名为 Domain Helper 的“功能”,它拦截对无效域名的请求,并提供一个页面来建议替代方案、显示一些广告等。(基本上,它会破坏 DNS 以便在广告上赚几美元.)

您的请求可能受到域助手服务的干扰。虽然它通常不会从 Internet 获得响应并回退到本地网络来查找服务器,但它会从 Domain Helper 获得“有效”响应。当然,响应根本不是您的代码所期望的,因此会引发异常。

有多种方法可以关闭 Domain Helper,但最好的办法是调用它们。您也可以尝试查看 http://dns-opt-out.comcast.net/http://dns.comcast.net/用于进一步调试资源。

关于c# - 更改为 Comcast 后的 ActiveDirectoryMembershipProvider "The specified domain or server could not be contacted",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4204754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com