0

UserNameとUserRightsの列を持つデータベースにテーブルがあります。UserRightsは、adminまたはuser Nowのいずれかです。ログインに使用するUserNameがユーザーのみの場合、別のフォームのボタンの一部を無効にしlogin formます。どうすればいいですか?私は以下のコードを持っています:

    private void button1_Click_1(object sender, EventArgs e)
    {
        connection.Open();
        OleDbDataReader reader = null;
        OleDbCommand command = new OleDbCommand("select* from TableAcct", connection);
        reader = command.ExecuteReader();
        while (reader.Read())
        {
            uname.Add(reader["username"].ToString());
            password.Add(reader["userpassword"].ToString());
            rights.Add(reader["rights"].ToString());
        }
        connection.Close();

        int totalItems = uname.Count;
        int count = 0;
        string isValidated = "";
        while (count < totalItems)
        {
            if ((Username.Text == uname[count].ToString()) && (pword.Text == password[count].ToString()))
            {
                isValidated = "True";
                rights2 = rights[count].ToString();
                count = 100;
            }
            else
            {
                count++;
            }
        }
        if (isValidated == "True")
        {
            Mainform mainform1 = new Mainform();
            login.ActiveForm.Hide();
            mainform1.linkLabel1.Text = Username.Text;
            mainform1.ShowDialog();
            Username.Clear();
            pword.Clear();

        }
        else
        {
            MessageBox.Show("Invalid Log in. Please try again", "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

    }
4

2 に答える 2

1

ログインユーザー名をセッションまたは任意のコンテナに保存します。そのユーザー名を別の形式で取得し、問題がない場合は条件を適用してから、

buttonname.visible = true
else
buttonname.visible = false.

可視プロパティを使用する場合は、最初にHTMLコードでボタンをvisible=falseモードにします。

またはあなたは使用することができます

buttonname.enable = true
else
buttonname.enable = false

私はそれがあなたのために役立つと思います。

于 2013-03-20T07:51:21.027 に答える
1

true または false をメインフォームに渡すことができます。または、ユーザーモード (admin または user-enum) とユーザー名などを含むユーザーのクラスを作成します。

メインフォームのコンストラクターはユーザーオブジェクトをパラメーターとして受け入れ、コンストラクターで InitializeComponent() の後に次のようなことができます。

public Mainform(User user)
{
   InitializeComponent();
   if(user.UserType == UserType.User)
   {
      // Make your buttons invisible
      buttonOnlyForAdmins.Visible = false;
   }
}

ボタンを非表示に設定する代わりに、デフォルトで「管理者ボタン」を非表示にし、ユーザーが管理者の場合にのみ表示するように設定することもできます。

ユーザーは次のようなクラスにすることができます。

public class User
{
   public string Username{get;set;}
   public UserType UserType{get;set}
}
于 2013-03-20T07:52:52.180 に答える