I\'m building an application that have a initial form for login and if the user is authorized this form (login) should close and the application main form should open.
I
if the user is authorized this form (login) should close and the application main form should open.
Recommendations number 1, 2 and 3 strongly state to not do this. Adding your own authentication layer to the one that Windows already provides is never not a mistake. You will never get it as secure and well tested as the Windows login. And there's a serious security risk, users will re-use their login password. If you need any extra info for a login beyond Environment.UserName and the groups the user belongs to then you can get that from the domain controller with the System.DirectoryServices namespace.
But you'll throw that caution to the wind. The boilerplate solution is to modify the Main() method in Program.cs and use ShowDialog() to display a login form. Which should return DialogResult.OK when the login is good, DialogResult.Cancel if it is not. You use it like this:
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
using (var login = new LoginForm()) {
if (login.ShowDialog() != DialogResult.OK) return;
}
Application.Run(new Form1());
}