窗体之间的 C# 授权表单

本文关键字:授权表 表单 授权 之间 窗体 | 更新日期: 2023-09-27 18:32:44

我正在使用C#(WPF(和MySQL创建一个数据库应用程序。我的问题是某些表单,例如允许用户删除和/或重新创建表的表单,应该需要密码(可以硬编码(。

我已经尝试了几件事并尽可能多地进行了研究,但我还没有完美的解决方案。到目前为止,我得到的最接近的是创建一个名为"SecurityCheck"的表单,该表单在调用时采用一个字符串,这将是目标表单。然后,安全检查窗体使用 switch 语句来决定在用户输入正确的密码时打开哪个窗体。这有效,但是理想情况下,我想将表单作为参数传递,而无需 switch 语句?

此方法的另一个问题是我无法弄清楚如何将目标表单所有者设置为原始调用表单。

理想情况下,安全检查表单将充当我希望打开的任何两个表单之间的通用桥梁,但我对 C# 的有限知识使我瘫痪。

提前谢谢你。

窗体之间的 C# 授权表单

如果我知道你的意思,你需要这样的方法来打开安全检查表单,然后再显示您指定的表单:

private void OpenFormWithAuthentication(Form destination)
{
    SecurityCheck secForm = new SecurityCheck();
    secForm.ShowDialog();
    if(secForm.DialogResult == DialogResult.Ok)
    {
        destination.Show();
    }
}

在安全检查表单中,您应该为表单的结果分配适当的值:

/* SecurityCheck form*/
if(Authenticate(username,password))
    this.DialogResult = DialogResult.Ok;
else
    this.DialogResult = DialogResult.Cancel;