ログインシステムを備えたC#アプリケーションがありますが、正常に動作していますが、ユーザーがログアウトして再度ログインできるようにして、メインフォームのメニューの可視性がここで変更されるようにする必要があります。ログイン フォーム、メイン フォーム、およびエンド ユーザー クラスがあります。
メインフォームは、ロード時にプログラムによって最初に実行され、ログインフォームを表示します。
ログインコードで。ユーザー名とパスワードをエンド ユーザー クラスに渡し、適切な loginsuccess をチェックします。
public partial class Login : Form
{
private void cmdlogin_Click(object sender, EventArgs e)
{
if (IsEmpty())
{
MessageBox.Show("Please enter username/password.");
TxtFocus();
}
else
{
EndUser.LogIn(txtusername.Text, txtpassword.Text);
if (EndUser.LogInSucces)
{
}
else
{
}
}
}
}
エンド ユーザー クラスでは、データベースへの接続を開き、ユーザー名とパスワードが利用可能かどうかを検索し、プロパティ loginsuccess を true に変更し、ロール プロパティを列挙型から適切なものに変更します。
その後、ログインフォームが閉じてメインフォームが表示されます。メインフォームはユーザーの役割を確認し、メニューの可視性を設定します。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Login loginFrm = new Login();
loginFrm.ShowDialog();
this.IsMdiContainer = true;
}
private void Form1_Load(object sender, EventArgs e)
{
if (EndUser.LogInSucces) {
switch (EndUser.GetRole())
{
case EndUser.Role.Principal:
PrincipalSettings();
break;
case EndUser.Role.Admission:
AdmissionSettings();
break;
case EndUser.Role.Registrar:
RegistrarSettings();
break;
case EndUser.Role.Faculty:
FacultySettings();
break;
}
}
}
#region menus visibility
コマンド application.restart() を使用してアプリケーションを再起動しようとしましたが、これはログイン フローを開始するためですが、プログラムで何かを実行してからログアウトするとエラーが発生するので良くありません。これを行う上でアドバイスをいただけますか?