2010-12-19 2 views
0

私はクライアントサーバーモデルでアプリケーションを書いています。クライアントが起動すると、usernameとpasswordフィールドを含むloginformが表示されます。 [サインイン]ボタンをクリックすると、クライアントはこれらのユーザ名をサーバーに送信して確認します。サーバーがOKをチェックすると、クライアントのメインフォームが表示されます。私のコードは次のようである:クライアントでadmin/userログイン時の表示/非表示ボタン

、loginForm.cs:クライアントで

if (execmd == "OK") // server sends "OK" or "FAILED" after checking authentication 
    this.DialogResult = DialogResult.OK 

でProgram.cs:

login = new loginForm(); 
DialogResult result = login.showDialog(); 
login.Dispose(); 
if (result != DialogResult.Cancel) 
    Application.Run(new MainForm(login)); 

は、今私は私のアプリを改善したいです管理者/ユーザー認証。 MainFormには設定ボタンがあります。ユーザーがログインすると、このボタンは非表示になります。管理者がログインすると、このボタンが表示されます。上記のコードでは、認証チェック後に送信する文字列サーバーの種類に応じて、メインフォームのShow()またはHide()をどのようにするのですか(たとえば、adminの場合はexecmd == "admin")。

ご協力いただきありがとうございます。

答えて

1

既存のロジックをloginFormに保存しますが、ユーザーが管理者かどうかを確認するテストを追加します。それがadmin(IsAdminのようなもの)かどうかを示すloginFormにブール値を設定します。

あなたはすでにMainFormにloginFormを渡しているので、MainFormはIsAdminプロパティをチェックしてボタンを表示するかどうかを判断できます。

btnSetting.Visible = login.IsAdmin; 
+0

はい、動作します。ありがとう、ジョナサン。 – PeteMerry

関連する問題