Member 13944608 Ответов: 2

С сервером связаться не удалось


public static bool ValidateActiveDirectoryLogin(string Domain, string Username, string Password)
{
	bool isValid = false;
	try
	{
		string ipAddress = "";
		if (Dns.GetHostAddresses(Dns.GetHostName()).Length > 0)
		{
			ipAddress = Dns.GetHostAddresses(Dns.GetHostName())[0].ToString();
		}

		//create a "principal context" - e.g. your domain (could be machine, too)
		//using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, Domain))
		using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, Domain, "DC=estagioit,DC=local"))
		{
			// validate the credentials
			isValid = pc.ValidateCredentials(Username, Password);
		}
	}
	catch (Exception ex)
	{
		isValid = false;
	}
	return isValid;

}


Что я уже пробовал:

public static bool ValidateActiveDirectoryLogin(string Domain, string Username, string Password)
{
	bool isValid = false;
	try
	{
		string ipAddress = "";
		if (Dns.GetHostAddresses(Dns.GetHostName()).Length > 0)
		{
			ipAddress = Dns.GetHostAddresses(Dns.GetHostName())[0].ToString();
		}
		using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, Domain, "DC=estagioit,DC=local"))
		{
			isValid = pc.ValidateCredentials(Username, Password);
		}
	}
	catch (Exception ex)
	{
		isValid = false;
	}
	return isValid;

}

F-ES Sitecore

Очевидно, возникла проблема с подключением клиентской машины к целевому серверу. Мы не можем проверить вашу сеть и не можем запустить ваш код в контексте вашей локальной машины, поэтому мы мало чем можем вам помочь.

Member 13944608

хорошо спасибо

Richard Deeming

string ipAddress = "";
if (Dns.GetHostAddresses(Dns.GetHostName()).Length > 0)
{
    ipAddress = Dns.GetHostAddresses(Dns.GetHostName())[0].ToString();
}


Это два относительно дорогих вызова метода, оба вызываются дважды, чтобы заполнить переменную, которую вы никогда не используете. Было ли это предназначено для сервера с другой целью, кроме замедления вашего кода?

2 Ответов

Рейтинг:
2

Member 10397150

Так что, кстати, это сообщение об ошибке ("с сервером не удалось связаться") является значением по умолчанию для системы.Каталог.Бухгалтерия.Исключение PrincipalServerDownException. Когда вы установили запуск кода и он останавливается с этим сообщением в ваших журналах - что-то в сети изменилось.


Рейтинг:
1

Dr.Walt Fair, PE

Когда я сталкивался с этой проблемой, это всегда было связано с неправильным указанием сервера (т. е. опечатка) или проблема с брандмауэром. Попробуйте сбросить брандмауэр и посмотреть, работает ли он.