Как я могу аутентифицировать пользователя домена Windows из приложения .NET Core, работающего в Linux - PullRequest
0 голосов
/ 22 сентября 2019

Предположим, у меня есть консольное приложение .NET Core, которое принимает имя пользователя и пароль, приложение работает в Linux.Как я могу проверить, что имя пользователя и пароль действительны на контроллере домена Windows (работающем в той же сети, что и компьютер с Linux)?

1 Ответ

0 голосов
/ 25 сентября 2019

Благодаря предложению @ gabriel-luci я собрал этот примитивный пример использования Novell.Directory.Ldap.NETStandard от других, которые я нашел.

using Novell.Directory.Ldap;
using System;

namespace ConsoleApp
{
    class Program
    {
        static void Main()
        {
            Console.Write("Host: ");
            var dc = Console.ReadLine();
            Console.Write("Domain\\User: ");
            var parts = Console.ReadLine().Split("\\");
            var domain = parts[0];
            var user = parts[1];
            Console.Write("Password: ");
            var pass = Console.ReadLine();
            try
            {
                using (var ldap = new LdapConnection { SecureSocketLayer = false })
                {
                    ldap.Connect(dc, LdapConnection.DefaultPort);
                    ldap.Bind($"{user}@{domain}", pass);
                    if (!ldap.Bound)
                    {
                        Console.Write("Not ");
                    }
                    Console.WriteLine("Valid");
                }
            }
            catch (LdapException e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

Он отлично работал на win-x64 и linux-arm, когда я тестировал его на контроллере домена Windows 2012, работающем на виртуальной машине.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...