2011-11-28 114 views
0

請考慮這兩種登錄方式在ASP.NET頁面:正確方法

  1. 連接使用Windows認證:

    _con = new SqlConnection(@"Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=True"); 
    _con.Open(); 
    

    之後,我們可以檢查如果cusromer提供的用戶名存在於Users表中,那麼登錄成功。

  2. 或者使用用戶名和密碼連接:

    _con = new SqlConnection(@"Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"); 
    _con.Open(); 
    

    其中提供有效的用戶名和密碼才能連接到數據庫並獲取數據,只有用戶後,可創造在DB爲每一位客戶的用戶。

問題:

  1. 是在ASP.NET頁面實現登錄正確的這些方式?
  2. 如果是的話,你更喜歡什麼樣的方式,第一個還是第二個?
  3. 在ASP.NET頁面中實現登錄的更好方法是什麼?
+0

我認爲我誤讀的問題。標題表示您要求**登錄到網站**,但代碼片段指示**連接到數據庫**。他們是兩回事。您是否特別想知道連接數據庫的最佳方式? – David

+0

@David Stratton:你提供了關於表單認證的好鏈接,我已經閱讀過:)。問題是關於一點點不同的事情,請看這個鏈接:http://www.asp.net/security/tutorials/an-overview-of-forms-authentication-cs。然後找到LoginButton_Click的實現。注意,爲了完成這個實現需要以某種方式連接到數據庫並獲取用戶的登錄名和密碼。所以問題是關於從數據庫檢查客戶提供的登錄名和密碼的有效性以及登錄名和密碼的正確方法。什麼是最好的方式來做到這一點? – Vadim

+0

然後我的回答不適用。看到其他兩個答案,這兩個答案都更好地回答你的實際問題。 – David

回答

2

就我個人而言,我不會爲每個用戶使用連接字符串。否則,你會在保持登錄你的應用程序和sql服務器的額外頭痛。

使用一個登錄您的應用程序,並且您可以使用自己的登錄支票或使用ASP.NET成員資格提供:http://msdn.microsoft.com/en-us/library/ff648345.aspx

+0

好的,謝謝,我會用第一種方法登錄:) – Vadim

2

特別是方法2真的是個壞消息,因爲您必須爲您的網站的每個用戶創建一個SQL登錄名。

我不確定我是否真的想讓每個用戶都能訪問您的數據庫,所以真的要小心。

如果您可以使用Windows身份驗證一次性解決大部分(身份驗證)問題,並且您真的不需要花費太多時間來運行它。