ASP.NET Core中的User Secrets是一种用于在开发过程中存储敏感信息的简便方法。但是,在多个Git分支上进行开发时,如何为每个分支指定不同的User Secrets可能会成为一个问题。
要解决这个问题,可以通过在每个分支上创建不同的secrets.json文件并将其添加到.gitignore文件中来为每个分支指定不同的User Secrets。
首先,需要在每个分支上创建一个secrets.json文件,并将其中包含的User Secrets添加到其中。假设在分支“dev”上我们想使用User Secret “ApiKey”来存储API密钥,我们可以通过以下方式添加这个User Secret:
dotnet user-secrets set "ApiKey" "my-api-key" --project MyProject.csproj
然后,我们可以将此secrets.json文件添加到分支“dev”的.gitignore文件中,以确保它在提交代码时被忽略。
在分支“master”上,我们想使用User Secret “ConnectionString”来存储数据库连接字符串。同样,我们可以创建一个secrets.json文件,并将其添加到.gitignore文件中。
在应用程序启动时,User Secrets会自动从secrets.json文件中加载所有User Secrets。因此,只需将正确的secrets.json文件复制到应用程序的根目录即可。
以下是一个示例,演示如何在程序中使用User Secrets:
public class Startup { public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
string apiKey = Configuration["ApiKey"];
string connectionString = Configuration["ConnectionString"];
// use apiKey and connectionString as needed
}
// additional configuration code goes here
}
这样,就可以轻松地为每个Git分支指定不同的User Secrets。