Вы можете использовать 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;
}
}
Надеюсь, это поможет.