代码之家  ›  专栏  ›  技术社区  ›  Jeremy E

在测试自动化中,如何从源代码中消除用户名和密码?

  •  6
  • Jeremy E  · 技术社区  · 15 年前

    我编写的测试自动化和脚本需要对域进行Windows身份验证才能访问。
    我不喜欢把它们保存在app.config中,因为它们是纯文本的。
    我不喜欢提示输入,因为这样它就不再是自动的了。
    如果我在程序集中硬编码它们,它们在.NET Reflector中是可见的,当我提交.cs文件时它们会被签入源代码管理。
    是否有一种模式/实践可以使使用配置好的用户名和密码而不暴露它们变得容易?

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

    3 回复  |  直到 15 年前
        1
  •  1
  •   dotalchemy    15 年前

    你不能用dpapi来保护它吗?

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

        2
  •  1
  •   Jacob    15 年前

    运行测试的进程可以将它们作为经过身份验证的用户。这样,您只需在设置服务/计划任务等时输入用户名和密码。当然,如果您 不得不 实际上,输入凭证作为测试的一部分,那么这不会有帮助。

        3
  •  1
  •   Frédéric Hamidi    15 年前

    你可以用 Convert.ToBase64String() Convert.FromBase64String() 用硬编码密码提供基本的混淆。

    如果你真的想要更强壮的东西,用 symmetric-key algorithm 比如 Blowfish 但这太过分了,你还得把钥匙放在某个地方。