Configuration .netcore中用户机密的工作流?

Configuration .netcore中用户机密的工作流?,configuration,asp.net-core,.net-core,Configuration,Asp.net Core,.net Core,我正在.netcore中玩游戏,并试图利用用户机密存储,以下是一些详细信息: 在本地工作时,我已经很好地处理了这个问题,但是我很难理解如何在团队环境中有效地利用它,如果我想在多台计算机上处理这个项目的话 存储本身(至少在默认情况下)将其配置json文件保存在users/appdata(在windows上)中。如果您要将项目上传到github,隐藏API键、连接字符串等,则可以使用此功能。只有我在一台机器上处理项目时,这一切都非常好。但是,在团队环境中或在多台机器上工作时,这是如何工作的呢?我唯一

我正在.netcore中玩游戏,并试图利用用户机密存储,以下是一些详细信息:

在本地工作时,我已经很好地处理了这个问题,但是我很难理解如何在团队环境中有效地利用它,如果我想在多台计算机上处理这个项目的话

存储本身(至少在默认情况下)将其配置json文件保存在users/appdata(在windows上)中。如果您要将项目上传到github,隐藏API键、连接字符串等,则可以使用此功能。只有我在一台机器上处理项目时,这一切都非常好。但是,在团队环境中或在多台机器上工作时,这是如何工作的呢?我唯一能想到的就是找到配置文件,将其签入私有repo,并确保在发生更改时将其替换到正确的目录中


还有其他我不知道的管理方法吗?

如您所知,Secret Manager工具提供了另一种方法,通过添加此控制层来避免将敏感数据检查到源代码管理中

那么,我们应该在哪里存储敏感配置呢?该位置显然应该与源代码分开,更重要的是,应该是安全的。它可以位于单独的私有存储库、受保护的文件共享、文档管理系统等中

但是,与其查找和共享确切的配置文件,我建议保留一个脚本(例如,bat文件),您可以在每台机器上运行该脚本来设置机密。例如:

dotnet user-secrets set MySecret1 ValueOfMySecret1 --project c:\work\WebApp1
dotnet user-secrets set MySecret2 ValueOfMySecret2 --project c:\work\WebApp1
这将使机器之间的可移植性更强,并且避免了知道在哪里查找和复制配置文件的麻烦


此外,对于这些设置,考虑是否需要对团队中的所有开发人员都相同。对于本地开发,我通常希望能够控制资源的安装、使用和命名,使其与团队中的其他人不同。当然,这取决于你的情况和偏好,我也看到了分享它们的理由

也许可以评估你公司的政策?如果您的工作计算机是通过域连接的,那么配置文件将在不同的计算机上同步,因为它存储在AppData\Remote\Microsoft\UserSecrets folderHey@Tseng谢谢,但我不太担心自己连接到域。我更关心的是自己在家里的不同机器上工作(appdata中是否共享了microsoft个人资料信息?),以及组织中的不同开发人员。在这些场景中,我的选项是什么?您也可以使用环境变量而不是机密,这两个选项都可以编写脚本,而且使用起来非常简单。谢谢,我无法让
--project…
工作,但我只是在批处理文件中的第一条语句中抛出了一张CD[dir]。这很有意义。我认为该路径无论如何都是特定于用户的,所以只需在脚本中更改目录就可以了。很高兴这有帮助。