为团队使用 .Net Core 用户机密

Adr*_*ang 1 asp.net-core

当我在项目上使用 UserSecret 时,会在项目文件中添加一个 UserSecretId 条目。这个 UserSecretId 是一个 GUID,它指向一个不在源代码管理中的本地文件夹,所以我的秘密仍然保密:) 当我提交我的项目文件并且另一个团队成员打开项目时,是一个使用添加的 UserSecretId 创建的文件夹到项目?

kra*_*ego 5

当其他用户克隆或检出您的项目时,不会创建用户机密。用户机密的主要用例是创建您不喜欢共享的机密(意味着无法自动共享)。另请参阅此 github 问题

如果用户密码被多个开发者使用:

  • Dev1 创建用户机密:
dotnet user-secrets init
dotnet user-secrets set "Movies:ServiceApiKey" "12345"
Run Code Online (Sandbox Code Playgroud)

secrets.json 将在 C:\Users\Dev1\AppData\Roaming\Microsoft\UserSecrets\ 32fb5ba1-4330-43a8-a03b-4868ba51ca11 中创建

  • Dev2 签出/克隆项目,并创建他的秘密:
dotnet user-secrets init 
Run Code Online (Sandbox Code Playgroud)

获取消息:“MSBuild 项目 'C:\Temp\ConsoleApp1\ConsoleApp1 \ConsoleApp1.csproj' 已使用 UserSecretsId 进行初始化。”

dotnet user-secrets set "Movies:ServiceApiKey" "12345"
Run Code Online (Sandbox Code Playgroud)

secrets.json 将在 C:\Users\Dev2\AppData\Roaming\Microsoft\UserSecrets\ 32fb5ba1-4330-43a8-a03b-4868ba51ca11 中创建

因此,两个用户都可以通过相同的 GUID 访问这些机密(所有用户机密都存储在一个文件中),因此项目文件不会有问题。

展位开发者的项目文件中的条目:

 <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <UserSecretsId>32fb5ba1-4330-43a8-a03b-4868ba51ca11</UserSecretsId>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)