【发布时间】:2013-04-09 08:15:00
【问题描述】:
我的问题与this one 基本相同,但针对的是 Windows Store App、c# 和 Visual Studio。我想有一种简单的方法将项目中的秘密值保存在一个可以在源代码控制中忽略(未签入)的文件中。我应该如何构建我的项目以以一种易于构建/源代码控制的方式存储应用程序机密?
我的第一个想法是将它存储在一个 XML 文件中(未签入),并在运行时加载它,但这会使安装它的用户可以使用它,所以它应该在构建时完成。构建项目时,如何存储几个秘密值并让 Visual Studio 在我的代码中替换它们?
【问题讨论】:
-
我永远不会把秘密放在源代码管理中——当新用户加入项目时手动添加它们。
-
我不清楚为什么“安装它”的用户可以访问不在源代码管理中的 XML 文件。它捆绑在您的安装程序中吗?如果是这样,请将其取出并使其成为运行时依赖项。
-
@PeterRitchie 这正是我要说的。我的问题意味着我怎样才能使项目构建过程变得简单而不在源代码控制中具有该价值。即“检查项目,然后使用您的应用程序密码执行 x”。为了清楚起见,我进行了编辑。
-
@Kohanz 例如,如果该值存储在 xml 文件中,并将其作为内容文件复制并在运行时读取,则安装该应用程序的用户将有权访问该文件文件/值,就像包中包含的任何图像资产一样。
-
@roiuser 是的,所以我建议您不要将该 XML 文件作为内容包含在内,而只是从预定位置读取它。您可能应该重构它,以便从构建中排除的 XML 文件仅包含您不想共享的秘密字段(例如密码)
标签: c# .net visual-studio version-control