我将以下内容添加到我想要登录的应用程序的web.config中:
<authentication mode="Forms">
<forms loginUrl="/forms/Login" name=".ASPXAUTH" timeout="60" slidingExpiration="true">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
/ forms / Login是用于在同一服务器上验证应用程序的集中式应用程序。 它有一个简单的Authentication类,使用以下方法:
public static bool AuthenticateUser(String username, String password)
{
bool validated = false;
PrincipalContext pc = new PrincipalContext(ContextType.Domain, "mynet.myad.org", "dc=mynet,dc=myad,dc=org");
validated = pc.ValidateCredentials(username, password, ContextOptions.Negotiate);
return validated;
}
这在大多数情况下效果很好但有时似乎“锁定”并且会引发以下异常:“无法联系服务器。”在我重新启动Web服务器或卸载/重新安装登录应用程序之前,它将继续抛出该异常。 (我尝试重新启动IIS,但这对它没有影响)。
我很确定它不是AD服务器,因为同一登录代码同时继续在其他Web服务器上运行。我显然不想不断重启Web服务器或重新安装登录应用程序。
我真的不知道从哪里开始排除故障。 任何有关这方面的帮助将不胜感激!
答案 0 :(得分:1)
我假设您在域中有多个域控制器?如果是这样,听起来其中一个可能是你的罪魁祸首。我的建议是,下次发生这种情况时,您会从受影响的服务器收集网络跟踪并重现问题。如果存在DNS或连接问题,我不会感到惊讶。