2013-11-26 74 views
0

我的應用程序中有三個頁面。登錄後重定向到特定頁面

的Login.aspx

Report.aspx

Main.aspx

當用戶在www.abc123.com/Report.aspx URL點擊,如果他們沒有簽署,我指導他們到www.abc123.com/Login.aspx頁面,但他們登錄後,我想顯示Report.aspx頁面,而不是Main.aspx頁面。以下我的代碼:

protected String Username 
    { 
     get 
     { 
      return Convert.ToString(Session["LoggedInUser"]); 
     } 
    } 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.Cache.SetExpires(DateTime.Today.AddDays(-1)); 
     Response.Cache.SetNoStore(); 

     if (String.IsNullOrEmpty(Username)) 
     { 
      Response.Redirect("Login.aspx"); 
     } 
+2

爲什麼不使用基於窗體的身份驗證(http://support.microsoft.com/kb/301240/en)以及特定頁面上的權限(例如, Reports.aspx?這應該支持您的要求,並且是一種經過驗證的ASP.NET技術。您還可以避免再次在每個受保護頁面上實施安全代碼。 – Markus

+0

嗨馬庫斯......我不知道該怎麼做。 – Valley

+0

試試這個http://stackoverflow.com/questions/20226946/redirecting-to-specific-page-after-login –

回答

1

正如我理解你的問題和問題的上下文,我懷疑你有一個項目,包含基於身份驗證和一些自定義驗證代碼的開箱即用表單的剩餘部分。
解決您的問題的簡短方法是通過設置forms -element的defaultPage-attribute配置登錄頁面在web.config中重定向到的頁面。
但是,由於這個問題與安全有關,我強烈建議瞭解ASP.NET forms based authentication的機制。一種乾淨的方法涉及:

  • 在web.consign中正確配置基於表單的身份驗證。
  • 如有必要:實施其他提供商,例如如果你想檢查自定義數據庫的用戶帳戶。
  • 通過web.config或編程方式保護應用程序中的受限頁面/區域(僅在Report.aspx的第一步中)。

如果您需要添加受限於特定受衆羣體的其他頁面,這也將構建一個良好的基礎。