0

我在数据库中有一个表,其中有一列 UserName 和 UserRights。UserRights 是admin或者现在,如果用于登录的用户名只是一个用户user ,我想禁用另一种形式的一些按钮。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 代码中将按钮置于可见 = false 模式。

或者你可以使用

buttonname.enable = true
else
buttonname.enable = false

我想它会对你有所帮助。

于 2013-03-20T07:51:21.027 回答
1

您可以将 true 或 false 传递给主表单。或者您为包含用户模式(管理员或用户枚举)和用户名等的用户创建一个类。

您的主窗体的构造函数接受用户对象作为参数,在 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 回答