Войти с Active Directory и C #? - PullRequest
       14

Войти с Active Directory и C #?

0 голосов
/ 25 марта 2019

Я работаю над приложением Windows Forms. У меня есть логин для пользователей, но я хочу иметь возможность войти с учетными данными компании.

Как я могу это сделать, используя Active Directory?

Если есть какой-либо другой способ, пожалуйста, скажите мне или оставьте мне пример, пожалуйста

1 Ответ

0 голосов
/ 25 марта 2019

Вы можете использовать Win32 API LogonUser, как показано ниже.

В приведенном ниже примере учетные данные жестко закодированы.

Вместо жесткого кодирования вы можете принять их с помощью пользовательского интерфейса и вызвать метод isValidCredentialsпри нажатии кнопки входа в систему.

public class Program
{

    [System.Runtime.InteropServices.DllImport("advapi32.dll")]
    public static extern bool LogonUser(string userName, string domainName, string password, int LogonType, int LogonProvider,ref IntPtr phToken);

    static void Main(string[] args)
    {
        Program obj = new Program();
        bool isValid = obj.IsValidateCredentials("myUserName","MyPassword","MyDomain");
        Console.WriteLine(isValid == true ? "Valid User details" : "Invalid User Details");
        Console.Read();
        //// instead of console.readline and writeline, open your protected form.
    }

    public bool IsValidateCredentials(string userName, string password, string domain)
    {
        IntPtr tokenHandler = IntPtr.Zero;
        bool isValid = LogonUser(userName, domain, password, 2, 0, ref tokenHandler);
        return isValid;
    }
}

Надеюсь, это поможет.

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