2016-05-23 11 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(); 

這然後將用戶重定向到登錄屏幕,當需要憑證時無需重新啓動應用程序

相關問題