2016-05-23 51 views
1

我正在开发使用C#的Windows应用程序。重新启动应用程序并将其重定向到C中的特定窗体#

它有4种形式。

  1. 初始屏幕,
  2. 登录屏幕,
  3. 主菜单&
  4. 用户详情形成 显示主菜单表格内,

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

注:用于显示用户的信息

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

代码形成主菜单形式的内部。

谢谢 依禅

+0

取决于如何构建您的登录,但通常,恕我直言,你会j ust使登录无效并重新显示登录屏幕,并且在打开的下一个表单成功时,在失败时再次尝试或退出 – BugFinder

回答

0

你应该做的是创造一个安全管理器类,用于保存用户证书/安全令牌,需要进行安全检查,然后要经过您的安全管理器的任何请求。这个类必须在当有记录没有细节提出了安全要求,即触发一个事件,

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(); 

这然后将用户重定向到登录屏幕,当需要凭证时无需重新启动应用程序

相关问题