2012-02-13 52 views
1

喜IM上有一個數據庫如何爲不同的用戶提供不同的登錄頁面?

   UserName|Password|UserType 
      Anil|Anil|Manager 
      ghouse|Ghouse|Admin 
      raghu|raghu|User 

現在我的任務是在登錄時每個用戶提供他們自己的網頁....它們都具有相同的登錄頁面的Web應用程序的工作..

能任何1分幫助我....

傢伙我想這代碼的wotkin罰款,兩個用戶可以在任何1告訴我該怎麼做,如果我有兩個以上的用戶

  SqlConnection con = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DebitCareBankApp;Data Source=SSDEV7-HP\\SQLEXPRESS"); 
     string cmdStr = "select LoginType from Login where UserName='" + TxtUsername.Text + "' AND Password = '" + TxtPassword.Text + "'"; 
     SqlCommand cmd = new SqlCommand(cmdStr, con); 
     con.Open(); 
     Object TypeUser = cmd.ExecuteScalar(); 
     con.Close(); 
     if (TypeUser != null) 
     { 
      LblError.Visible = false; 
      LblError.Text = ""; 
      if (TypeUser.ToString() == "Manager") 
       Response.Redirect("~/CallingAgents/CallingAgents_Login.aspx"); 
      else 
       Response.Redirect("~/UserRegistrationForm.aspx"); 
     } 
     else 
     { 
      LblError.Visible = true; 
      LblError.Text = "Invalid Credentials Entered, Try again"; 
     } 
+0

難道真的特定用戶或用戶類型的具體點嗎? – Mithrandir 2012-02-13 09:51:11

+0

usertype @Mithrandir – SoftwareNerd 2012-02-13 09:52:44

+0

任何1可以幫助我的代碼.. – SoftwareNerd 2012-02-13 10:22:21

回答

1

我想你應該創建一個通用類,在成功登錄時插入用戶類型。 在那個普通的類中重定向到相應的頁面。

成功登錄:

Response.Redirect(clsCommon.GetDefaultPage(userType)); 

您commaon類代碼:

public static string GetDefaultPage(string userType){ 
     //Default Redirects 
     Dictionary<string, string> userInfo = new Dictionary<string, string>(){ 
{"Manager","~/ManagerLogin.aspx"},         {"Admin","~/AdminLogin.aspx"},       
          {"User","~/UserLogin.aspx"} 
           }; 
      return userInfo[roleName]; 
} 
+0

我認爲這會工作.....我會試試這個......謝謝 – SoftwareNerd 2012-02-13 13:08:14

+0

我的榮幸!!如果你的工作做得好,馬克它的答案。 – Neha 2012-02-13 13:25:03

0

如果您使用的是struts,那麼您可以根據某個Id重定向到不同的頁面。在actionforward你可以實現。或者你可以從url中獲得一些值並嘗試重定向它

0

一個簡單的方法是使用登錄控件併爲Authenticate事件和LoggedIn事件提供事件處理程序。但我認爲你值得檢查一下asp.net會員系統的功能。

+0

數據庫結構看起來不像會員提供商。我認爲登錄功能是手工完成的。 – 2012-02-13 10:29:02

+0

是的,這裏沒有會員供應商@rwarzycha – SoftwareNerd 2012-02-13 10:48:02

+1

@Anil:如果你必須使用自己的桌子,考慮實施你自己的memeberhip和角色提供商。 – Mithrandir 2012-02-13 10:49:43

0

我假設您沒有使用Membership供應商並手動設置您的登錄功能。

我不完全瞭解這種定製的目的。對我來說沒有意義。但也有多種解決方案爲您提供:

  • 轉換登錄頁面(ASPX)到用戶/自定義控件(ASCX)並放入到不同的頁面 - 簡單,快速但不完全透明更多信息ScottGu
  • 使用IIS URL重寫的引擎,以提供多個入口點(URL)的 相同的登錄頁面 - 清晰,recomended,更多信息ScottGu

在第一種情況下,您需要檢查UserType以獲取用戶給出的憑證,並與頁面Url(aspx)進行對比。在第二種情況下,您需要獲取包含基本Url的Request.RawUrl並製作簡單的case

+0

我需要將每個用戶重定向到他自己的頁面.....具有相同的登錄頁面... – SoftwareNerd 2012-02-13 10:53:48

+0

@Anil糾正我,如果我錯了。每個用戶都需要擁有自己的頁面? – 2012-02-13 11:00:19

+0

是你的r rite .... @ rwarzycha – SoftwareNerd 2012-02-13 11:26:51

0

利用會話。

有關解決方法,你可以按照這個:

+提供相同的登錄頁面。
+詢問用戶名和密碼。
+使用下拉菜單選擇usertype(即Admin或Manager或User)。

因此,根據從下拉列表中選擇您處理請求。

我希望這會有所幫助。

相關問題