如何向我的 c# windows 表单应用程序添加访问权限?
How do I add access rights to my c# windows forms application?
首先,如果这个问题已经在某个地方被问过,但我在寻找之后根本找不到答案,我真的很抱歉。我对编码也很陌生,如果实际上不可能或其他原因,我很抱歉。
我用 c# 创建了一个 windows 表单应用程序,其中包含多个面板,这些面板本身包含文本框和标签等元素。例如,我有一个聊天面板和一个日历面板。我想以某种方式根据用户的权限建立访问权限(访问级别存储在已经连接到应用程序的数据库中)。理想情况下,我希望一旦用户登录,面板就会 然后 初始化并创建(从安全角度来看)这样会更好。
我真的不能提供屏幕截图或太多代码,因为它是针对不允许我放在互联网上的评估作品。
提前致谢:)
如果我没看错,那么你要做的是 if(userHasSomePermission) { CreateComponent };
而不是之前创建它,如果用户没有权限 disable/hide 它
如果是这样的话,虽然不怎么科学,但是有点棘手。
在您的 Form
构造函数中,您有 InitializeComponents()
方法,该方法存储在您的 Form.Designer.cs
文件中。在该文件中,您正在创建控件。
您可以做的是在您的 Form.cs
中创建更多方法,例如
private void CreatePanel1()
{
Panel p = new Panel();
p.Location = new Point(3, 3);
p.Size = new Size(50, 50);
p.BackgroundColor = Color.Black;
this.Controls.Add(p);
}
然后在构造函数中根据需要调用它:
public Form()
{
InitializeComponents();
if( checkIfUserHavePermission )
CreatePanel1();
}
这样我们的方法中的组件将只在需要时创建。
棘手的部分是 you will not see components inside designer window
因为只有位于 Form.Designer.cs/InitializeComponents()
中的组件才会在其中绘制。因此,您想要进行的任何更改都需要通过代码手动完成。
否则,如果您担心安全性并且不想只 hide/disable 一些控制,您可以在需要时将其删除。
因此您可以使用每个控件的 Tag
属性 并将我们说的 Admin_C
添加到每个控件的 Tag
中,这仅适用于管理员,然后执行此操作:
public Form()
{
InitializeComponents();
if(userIsNotAdmin)
{
foreach (Control item in this.Controls)
{
if(item.Tag.ToString() == "Admin_C")
this.Controls.Remove(item);
}
}
}
首先,如果这个问题已经在某个地方被问过,但我在寻找之后根本找不到答案,我真的很抱歉。我对编码也很陌生,如果实际上不可能或其他原因,我很抱歉。
我用 c# 创建了一个 windows 表单应用程序,其中包含多个面板,这些面板本身包含文本框和标签等元素。例如,我有一个聊天面板和一个日历面板。我想以某种方式根据用户的权限建立访问权限(访问级别存储在已经连接到应用程序的数据库中)。理想情况下,我希望一旦用户登录,面板就会 然后 初始化并创建(从安全角度来看)这样会更好。
我真的不能提供屏幕截图或太多代码,因为它是针对不允许我放在互联网上的评估作品。
提前致谢:)
如果我没看错,那么你要做的是 if(userHasSomePermission) { CreateComponent };
而不是之前创建它,如果用户没有权限 disable/hide 它
如果是这样的话,虽然不怎么科学,但是有点棘手。
在您的 Form
构造函数中,您有 InitializeComponents()
方法,该方法存储在您的 Form.Designer.cs
文件中。在该文件中,您正在创建控件。
您可以做的是在您的 Form.cs
中创建更多方法,例如
private void CreatePanel1()
{
Panel p = new Panel();
p.Location = new Point(3, 3);
p.Size = new Size(50, 50);
p.BackgroundColor = Color.Black;
this.Controls.Add(p);
}
然后在构造函数中根据需要调用它:
public Form()
{
InitializeComponents();
if( checkIfUserHavePermission )
CreatePanel1();
}
这样我们的方法中的组件将只在需要时创建。
棘手的部分是 you will not see components inside designer window
因为只有位于 Form.Designer.cs/InitializeComponents()
中的组件才会在其中绘制。因此,您想要进行的任何更改都需要通过代码手动完成。
否则,如果您担心安全性并且不想只 hide/disable 一些控制,您可以在需要时将其删除。
因此您可以使用每个控件的 Tag
属性 并将我们说的 Admin_C
添加到每个控件的 Tag
中,这仅适用于管理员,然后执行此操作:
public Form()
{
InitializeComponents();
if(userIsNotAdmin)
{
foreach (Control item in this.Controls)
{
if(item.Tag.ToString() == "Admin_C")
this.Controls.Remove(item);
}
}
}