Основное приложение ASP.NET с аутентификацией LDAP на образе Docker - PullRequest
0 голосов
/ 27 июня 2018

Я создал образец приложения 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"]
...