Cómo crear un diálogo de inicio de sesión de winform y mantener el bucle

Creando un formulario de inicio de sesión que luego procederá al formulario principal si las credenciales son correctas. Aquí está el pseudocódigo básico:

ShowLoginForm()

if (DialogResult == OK)
  CheckCredentials();
  if (credentials == VALID)
    ShowMainForm();
  else
    LoopBackAndShowLoginFormAgain();  //repeat process...
else
  CloseLoginForm();

Sin embargo, soy relativamente nuevo en WinForms y todavía lo estoy descubriendo. Estoy tratando de decidir dónde colocar mi bucle (Main () o en algún lugar de LoginForm). ¿Dónde debo hacer el cheque por credenciales? Esto es lo que tengo hasta ahora:

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    LoginForm loginForm = new LoginForm();
    if (loginForm.ShowDialog() == DialogResult.OK)
    {
        Application.Run(new AutoSignerForm());
    }
}

No quiero salir y abrir un formulario de inicio de sesión repetidamente (estoy buscando algo de eficiencia aquí, así que quiero usar el mismo cuadro de diálogo de inicio de sesión). ¿Algún puntero, consejo o idea?

Respuestas a la pregunta(4)

Su respuesta a la pregunta