2012-06-04 79 views
0

這是我的ASP.NET身份驗證操作。ASP.NET模擬設計

private void LoginButton_Click(Object sender, 
         EventArgs e) 
    { 
     string userName = txtUserName.Value; 
     string password = txtUserPass.Value; 

     if (ValidateUser(txtUserName.Value, txtUserPass.Value)) 
     { 
      FormsAuthenticationTicket tkt; 
      string cookiestr; 
      HttpCookie ck; 
      tkt = new FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now, 
               DateTime.Now.AddMinutes(3), chkPersistCookie.Checked, 
               userName + "@ticket"); 
      cookiestr = FormsAuthentication.Encrypt(tkt); 
      ck = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr); 
      if (chkPersistCookie.Checked) 
       ck.Expires = tkt.Expiration; 
      ck.Path = FormsAuthentication.FormsCookiePath; 
      Response.Cookies.Add(ck); 

      string strRedirect; 
      strRedirect = Request["ReturnUrl"]; 
      if (strRedirect == null) 
       strRedirect = "MyAccount.aspx"; 
      Response.Redirect(strRedirect, true); 
     } 
     else 
      Response.Redirect("logon.aspx", true); 

    } 

我有我的數據庫用戶表中保存所有憑據。使用ValidateUser方法我正在進行憑據驗證。另外我有三種類型的用戶:會員,主持人和管理員。每種類型的成員都有獨特的功能。可以說我有A,B和C T-SQL存儲在我的數據庫裏面。

我應該以讓爲:

會員只執行一個查詢。

主持人執行A和B.

管理員執行A,B和C

當然,我可以管理的Web應用程序的執行,但我不知道它是多麼安全。從技術上講,我可以在應用程序之外執行類似的查詢,從而可以訪問所有數據庫數據。我想以某種方式將Web App登錄和Db訪問結合起來。

謝謝!

回答

1

如果這些查詢將來自Web應用程序,我認爲您會想要管理調用過程的代碼端..您可以維護數據庫中的URL列表,分配角色並賦予這些角色訪問特定的網址。這些網址將決定哪些查詢用戶可以執行...

然後在你的代碼,你可以自定義的屬性分配,以限制對它們的訪問....

+0

謝謝您的回答。我可以從Web應用程序管理它們,但我不確定它有多安全。從技術上講,我可以在應用程序之外執行類似的查詢,從而訪問所有數據。我想以某種方式將Web App登錄和Db訪問結合起來。 –

+0

通常,您有一個與數據庫進行交互的Web應用程序,並且使用一個通常爲高級用戶的用戶,能夠執行Web應用程序需要執行的所有必需查詢,而不管Web用戶上下文如何。然後,Web應用程序管理一個身份驗證提供程序,該身份驗證提供程序將根據業務需求限制用戶對數據庫的執行查詢... – M4V3R1CK

+0

我知道一種常用於基於Intranet的站點的技術,即使用集成安全性。這是用戶使用Windows登錄憑據登錄網站的地方。然後,任何命中數據庫的查詢都將顯示爲特定的窗口標識,並且安全性和權限將持續存在。 – M4V3R1CK

1
+0

這是Windows Impersonation,我不在公司域名下,加上我在Unix下的很多用戶。所以我想不會爲我工作。 –

+0

對不起,我無法爲你提供更多幫助。我認爲應用程序級別的用戶管理是您最好的選擇。我認爲創建應用程序的用戶不應該是管理員用戶以外的任何人(如果他們可以的話,我會重新評估在創建應用程序時可以發出的命令類型),所以我認爲你不會曾經有過一個'壞用戶'會創建和執行惡意代碼的問題。 – M4V3R1CK