У меня есть проект ASP.NET MVC с использованием LDAP для аутентификации пользователей. На сервере разработки аутентификация работает, но в производстве она не работает.LDAP - не удается получить доступ к каталогу
Я развернул проект до производства, проблем с LDAP нет. Затем я снова развернулся, но перед развертыванием я обновил весь пакет в диспетчере пакетов NuGet. Но это не работает.
Прежде чем я развернул новый проект с обновленным пакетом, я уже тестировал его на сервере разработки, ничего не случилось. Кажется, проблема в том, что я не могу получить доступ к LDAP-пути на рабочем сервере.
Вот <appSettings>
раздел:
<appSettings>
<add key="FolderPath" value="Files/" />
<add key="DirectoryPath" value="LDAP://blabla.bla.bla:389/CN=Users,DC=blabla,DC=bla,DC=bla" />
<add key="DirectoryDomain" value="bla" />
<add key="UserPermission" value="blabla" />
</appSettings>
Вот код аутентификации
public bool AuthenticateUser(string domain, string username, string password, string LdapPath, string userPermission)
{
string domainAndUsername = domain + @"\" + username;
DirectoryEntry entry = new DirectoryEntry(LdapPath, domainAndUsername, password);
try
{
Object obj = entry.NativeObject;
DirectorySearcher search = new DirectorySearcher(entry);
search.Filter = "(SAMAccountName=" + userPermission + ")";
search.PropertiesToLoad.Add("cn");
SearchResult result = search.FindOne();
if (null == result)
{
return false;
}
LdapPath = result.Path;
string _filterAttribute = (String)result.Properties["cn"][0];
if (_filterAttribute != userPermission)
return false;
}
catch (Exception ex)
{
return false;
throw new Exception("Error authenticating user. " + ex.Message);
}
return true;
}
Единственные настройки разницы между разработкой и производством является DirectoryPath
и UserPermission
значения.
Извините за мой плохой английский.
спасибо.
Какая ошибка возникает при ее выполнении? – A3006
@ И, простите, я не зарегистрировал ошибку на рабочем сервере. Я думаю, проблема в DirectoryEntry, потому что я попытался войти 3 раза в новый проект, а затем я изменил проект на старый и снова зашел, а затем он работает. Я делаю это, потому что хочу увидеть, передана ли DirectoryEntry в новом проекте, потому что, если я ввожу неверный пароль 3 раза в LDAP, учетная запись будет заблокирована, поэтому я не могу войти в систему, даже если я изменю проект на новый. Надеюсь, вы понимаете. Благодарю. – TeachMe