【问题标题】:restart application and redirec to a specific form in C#重新启动应用程序并重定向到 C# 中的特定表单
【发布时间】:2016-09-20 09:48:08
【问题描述】:

我正在使用 C# 开发一个 Windows 应用程序。

它有 4 种形式。

  1. 启动画面,
  2. 登录屏幕,
  3. 主菜单和
  4. 用户详细信息表单 显示在主菜单表单内,

还有一个按钮名称为“注销”。我尝试在注销按钮内使用Application.restart() 方法,但它会在登录屏幕之前加载启动屏幕。 我关心的是当我单击注销按钮时如何显示登录屏幕页面。

注意:

userdetails ud = new userdetails();
ud.ShowDialog();

用于在主菜单表单中显示用户详细信息表单的代码。

谢谢 伊山

【问题讨论】:

  • 在很大程度上取决于您构建登录的方式,但是,通常情况下,恕我直言,您只会使登录无效并重新显示登录屏幕,并且在打开下一个表单成功时,失败要么重试,要么退出

标签: c# logout


【解决方案1】:

你应该做的是创建一个安全管理器类来保存用户凭据/安全令牌,任何需要安全检查的请求都必须通过你的安全管理器。在此类上,当没有详细记录时发出安全请求时会触发一个事件,

例如

public class SecurityMonitor
{
    public string Username{get;set;}
    public string Password{get;set;}
    public event LoginEventHandler LoginRequired;
    public bool CheckSecurity()
    {
        if(Username==null)
        {
            LoginRequired?.Invoke(this,new LoginEventArg());
            //wait logic here
        }    
        return CheckAccess();
    }

    public void Logout()
    {
        Username= null;
        Password= null;
    }
}

然后在你的主窗体中你有

SecurityMonitor security = new SecurityMonitor();
security.LoginRequired += (s,e)=> ud.ShowDialog();

这将在需要凭据时将用户重定向到登录屏幕,而无需重新启动应用程序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多