Я создал образец приложения ASP.NET webapi, которое аутентифицирует пользователя в домене с помощью этого фрагмента кода:
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "mydomain"))
{
isValid = pc.ValidateCredentials(model.Username, model.Password);
}
вышеуказанный код взят из
System.DirectoryServices.AccountManagment(4.5.0).dll
Когда изображение публикуется и запускается в производство, и пользователь отправляет запрос POST на указанный выше фрагмент кода, возникает исключение:
Connection id "0HLERL2WAHD8H", Request id "0HLERL2WAHD8H:00000002": An unhandled exception was thrown by the appli
cation.
System.DirectoryServices.AccountManagement.PrincipalServerDownException: The server could not be contacted. ---> System.
DirectoryServices.Protocols.LdapException: The LDAP server is unavailable.
at System.DirectoryServices.Protocols.LdapConnection.Connect()
at System.DirectoryServices.Protocols.LdapConnection.SendRequestHelper(DirectoryRequest request, Int32& messageID)
at System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest request, TimeSpan requestTimeout)
at System.DirectoryServices.AccountManagement.PrincipalContext.ReadServerConfig(String serverName, ServerProperties&
properties)
--- End of inner exception stack trace ---
Моему приложению не удается получить доступ к серверу LDAP, однако, когда я публикую это приложение на стандартном сервере IIS, все работает как положено.
Любая помощь будет оценена.
dockerfile:
FROM microsoft/dotnet:2.0-sdk
COPY pub/ /root/
WORKDIR /root/
ENV ASPNETCORE_URLS="http://*:80"
EXPOSE 80/tcp
ENTRYPOINT ["dotnet", "myapp.dll"]