2010-10-28 30 views
6

我編寫測試自動化和腳本,需要Windows身份驗證才能訪問該域。
我不喜歡把它們放在app.config中,因爲它們都是純文本格式。
我不喜歡提示輸入,因爲它不再自動化。
如果我在程序集中對它們進行硬編碼,它們可以從.Net Reflector中看到,並且在提交.cs文件時它們會被檢入源代碼控制。
有沒有一種模式/做法,可以很容易地使用配置的用戶名和密碼而不用公開它們。如何在測試自動化中消除源代碼中的用戶名和密碼?

這也適用於具有憑據登錄和數據庫使用Windows身份驗證或SQL Server身份驗證連接的網站。
任何意見將不勝感激。

回答

1

您可以使用帶有硬編碼密碼的Convert.ToBase64String()Convert.FromBase64String()來提供基本混淆。

如果你真的想要更強大的東西,可以使用symmetric-key algorithm,比如, Blowfish,但它是矯枉過正,你仍然需要將密鑰存儲在某個地方。

+0

這聽起來像一個可行的解決方案,專門加密和存儲密鑰的地方只有自動化將有權限去。 – 2010-10-28 17:34:26

+0

如果您可以將密鑰存儲在某個地方,那麼只有自動化工具纔有權限訪問,那麼將密碼存儲在那裏會更容易嗎? – EKI 2010-11-01 13:28:33

1

運行測試的過程可以將它們視爲已通過身份驗證的用戶。這樣,您只需在設置服務/計劃任務等時輸入用戶名和密碼即可。當然,如果你不得不作爲測試的一部分實際輸入憑據,那麼這將不會有所幫助。

+0

您可以更進一步,在NTFS上設置一個包含SQL服務器登錄密碼的加密文件。運行計劃任務的用戶帳戶將能夠讀取加密文件的內容。基於對NTFS加密的有限理解,它可以配置爲限制從其他帳戶訪問該文件。 – poke 2010-10-28 17:38:41

+0

或者測試用戶可以使用Windows身份驗證連接到SQL數據庫;這樣,你不必讀任何密碼。 – Jacob 2010-10-28 17:39:54

相關問題