我正在用客户端 - 服务器模型编写应用程序。当客户端启动时,它将显示带有用户名和密码字段的loginform。点击登录按钮后,客户端将发送这些用户名& pw到服务器检查。如果服务器检查正常,则会出现客户端主窗体。我的代码是这样的:
在客户端,loginForm.cs:
if (execmd == "OK") // server sends "OK" or "FAILED" after checking authentication
this.DialogResult = DialogResult.OK
在客户端,program.cs:
login = new loginForm(); DialogResult result = login.showDialog(); login.Dispose(); if (result != DialogResult.Cancel) Application.Run(new MainForm(login));
现在我想通过管理员/用户身份验证来改进我的应用。在MainForm中有一个Setting按钮。如果用户登录则会隐藏此按钮。如果管理员登录,则会显示此按钮。使用上面的代码,如何根据检查身份验证后字符串服务器将发送的内容,使MainForm Show()或Hide()成为按钮?(例如,如果管理员登录,则为execmd == "admin"
)。
提前感谢您的帮助。
答案 0 :(得分:1)
将现有逻辑保留在loginForm中,但添加测试以查看用户是否为admin。然后在loginForm中设置一个布尔值,指示它是否为admin(类似于IsAdmin)。
您已经将loginForm传递给MainForm,因此您的MainForm可以检查IsAdmin属性以确定是否应该显示该按钮。
btnSetting.Visible = login.IsAdmin;