簡體   English   中英

如何在C#WinForm中通過toolStripMenueItem設置用戶訪問權限

[英]How to set user access by toolStripMenueItem in C# WinForm

我想在我的項目中添加管理員可以為用戶設置訪問控制的功能。
假設管理員可以選擇用戶名和模塊名並將其保存到數據庫。
用戶成功登錄后,他只能顯示由Admin添加的特定toolstripMenueItem。

但是我不知道該怎么做。

我只是通過admin添加用戶憑據和模塊名稱。 當用戶嘗試登錄時,我將該控件名稱檢索到字符串類型的變量中,然后嘗試這樣做。

public void AccessControl()
{
    SqlConnection conn = new SqlConnection("Data Source=MYSOFTIT-05-PC\\SQLEXPRESS;Initial Catalog=Point_Of_Sale;Integrated Security=True");

    conn.Open();
    SqlCommand scmd = new SqlCommand("SELECT Control FROM Roll WHERE Email = 'taherak17@gmail.com'; ", conn);
    SqlDataAdapter dataAdapter = new SqlDataAdapter(scmd);
    DataTable dt = new DataTable();
    DataSet dataSet = new DataSet();
    dataAdapter.Fill(dataSet);
    SqlDataReader myReader = null;
    myReader = scmd.ExecuteReader();

    while (myReader.Read())
    {
        var a = (myReader[0].ToString());

    }
    conn.Close();
}

private void Login_Load(object sender, EventArgs e)
{
    AccessControl();
}

但是最令人震驚的是如何根據數據庫值定義啟用或禁用ToolStripMenuItem? 這是我的界面,並且特定的菜單項已禁用或啟用。 這是我的滾動表

當管理員授權模塊時,將ToolStripMenuItem名稱保存在數據庫中。默認情況下,這些菜單項保持隱藏狀態。 然后從查詢中加載名稱,例如在數組中。 然后在父窗體加載時執行此操作。

        for (int i = 0; i < menuItems.Length; i++)
        {
            menuStrip.Items[menuItems[i]].Visible= true;
        }

這里的menuItems是一個字符串數組,其中包含數據庫中的ToolStripMenuItem名稱。 menuStrip是您的System.Windows.Forms.MenuStrip,其中包含ToolStripMenuItem。 這將僅顯示管理員已授權(存儲在數據庫中)的那些MenuItem。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM