如何从Test Automation中的源代码中删除用户名和密码?

时间:2010-10-28 17:14:52

标签: c# security testing passwords credentials

我编写需要Windows身份验证的测试自动化和脚本才能访问域 我不喜欢将它们保存在app.config中,因为它们以纯文本形式提供 我不喜欢提示输入,因为它不再自动化了。
如果我在程序集中对它们进行硬编码,则可以从.Net Reflector中看到它们,当我提交.cs文件时,它们会被检入源控件。
是否有一种模式/实践可以轻松使用已配置的用户名和密码而不会暴露它们。

这也适用于具有登录凭据的网站和使用Windows身份验证或sql server身份验证进行连接的数据库。 任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:1)

您可以将Convert.ToBase64String()Convert.FromBase64String()与硬编码密码一起使用,以提供基本的混淆。

如果您真的想要更强大的东西,请使用symmetric-key algorithm Blowfish,但这太过分了,你仍然需要将钥匙存放在某个地方。

答案 1 :(得分:1)

运行测试的过程可以将它们作为经过身份验证的用户。这样,您只需在设置服务/预定任务/等时输入用户名和密码。当然,如果您必须实际输入凭据作为测试的一部分,那么这将无济于事。

答案 2 :(得分:1)

你不能使用DPAPI来保护它吗?

有一篇有趣的MSDN文章@ http://msdn.microsoft.com/en-us/magazine/cc164054.aspx