[英]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.