用于在Windows手机和商店应用中测试的用户名/密码

时间:2013-12-26 02:22:21

标签: c# windows windows-phone-8 windows-store-apps mstest

我写了一个小型库,通过https链接获取受密码保护的数据。此库可在Windows 8.1,Windows Phone 8和Windows应用商店8.1的桌面下运行。我现在需要完成我的测试工具。该项目将很快出现在github上。

为了正确测试,我需要一个用户名/密码。由于这是开源的,我不想在那里存储我的用户名/密码(显然)。在针对桌面应用程序运行时,我倾向于使用Windows提供的密码存储(Credential Manager控制面板,存储在通用凭据下。这样可以正常工作。代码会扫描凭据缓存以获取所需内容,加载它并运行测试。< / p>

但是Windows Phone或Windows Store的测试呢?如何安全地缓存这样的用户名/密码,以便我的代码仍然可以公开?我开始考虑将一个特殊的空文件放入源代码控制中。在构建过程中查找此文件的实际版本,如果找到,则将其复制(并且它是某种资源文件),然后在其中包含用户名和密码。等

我正在使用VS2013和MSTest进行此项目。

其他人如何解决这个问题?非常感谢提前!

2 个答案:

答案 0 :(得分:2)

对于我在GitHub上使用并且需要API密钥的几个其他客户端库,我已经将凭证存储在源树之外的已知位置,但是通过单元测试加载运行。这使它成为我们的源代码控制,允许其他人提供自己的密钥来运行单元测试,并且很简单。这种方法可以推广到您提到的各种平台的独特存储要求,但我只需要在直接窗口上使用它。

example from a unit test project

修改 是的,对于商店和手机应用程序,您对文件系统的访问权限有限。您需要使用IsolatedStorage或将凭据视为测试程序集中的嵌入式资源。我觉得后者更容易。

为了将您的凭据保留在GitHub之外,您可以将凭据添加为嵌入式资源文件,然后tell git to ignore it。下载代码的人在提供所述文件之前无法构建它,但这可能是你想要的。使用前/后构建事件可以实现类似的功能;从预构建的已知位置复制资源,然后删除后期构建(确保将后期构建设置为始终运行)。

答案 1 :(得分:0)

您可以使用PasswordVault存储用户名&amp; Windows应用商店应用的密码(Windows 8.1)。可以看到控制面板的凭证管理器。

Best practice for saving sensitive data in Windows 8

对于WP8,没有这样的东西,所以最好通过一些加密存储在隔离存储中。