2011-08-10 163 views
0

對於我的應用程序的一部分,我需要驗證用戶SQL帳戶的詳細信息。在ASP.NET中驗證SQL帳戶用戶名和密碼

目前完成的方式是將用戶名和密碼附加到連接字符串,然後返回包含用戶詳細信息的數據集。此代碼位於try語句中,如果發生異常,它會假定用戶的詳細信息不正確(這是一種非常糟糕的做事方式!)。

當前的代碼是這樣的:

iBindClientServices.Services service = new iBindClientServices.Services(); //nasty com+ service   
    try 
    { 
    string szConn = "DSN=xxxxx" + ";UID=" + userName + ";PWD=" + password; 
    //check username and password 
    ADODB.Recordset record = service.GetUserDetail(szConn, ""); 
    } 

    catch(Exception ex) 
    { 
    //login unsuccessfull 
    } 

有一種優雅的方式來做到這一點?

回答

1

如何這段代碼

public static bool checkConnection() 
{ 
    SqlConnection conn = new SqlConnection("mydatasource"); 
    try 
    { 
     conn.Open(); 
     return true; 
    } 
    catch (Exception ex) { return false; } 
} 
+0

這比已經正在做什麼略勝一籌。我希望有一些SQL庫有某種驗證方法。這種方法的一個問題是,即使用戶名和密碼是正確的,它也會對每個異常驗證失敗 – woggles

+0

我認爲檢查是否可以使用給定的連接字符串打開與數據庫的連接更重要,上面的粘貼代碼就是這樣做,沒有額外的東西。除了使用錯誤的連接字符串之外,我沒有看到在公路使用場景中可能出現的其他異常。那麼我不知道任何API只是驗證連接字符串。 –

+0

我同意它更好。如果存在基礎設施問題(例如數據庫或網絡故障等),則可能會拋出異常,但後來我想我遇到了更大的問題! – woggles