C# .NET Framework 4.7.2在VS 2019中--保持我的clientID和客户端秘密gitignore Key Vault出来

问题描述 投票:0回答:1

我是#C的新手,所以请原谅我的问题,这对你来说可能很简单。我想把我的clientID、clientSecret和tenantID从主源码控制中取出来,但我完全不知道该怎么做。我在Visual Studio中看到了一些针对.NET Core与Connected Services的方法,但是对于.NET Framework 4.7.2来说,这个方法并不适用。我对设置配置文件也没有信心。我已经在Azure Portal上创建了一个资源组,但我不知道如何让这个密钥库工作。

下面的代码代表了获取令牌的工作代码,我的问题是要隐藏那些硬编码字符串。

非常感谢您的解答

        private static string GetToken()
        {

            string clientID = "xxxad43f-c825-491f-9130-8cc4da1d1111";
            string clientSecret = "dRbIT5Wn4@u=55L@fLnYRNuDYrFD@111";
            string tenantID = "4ae48b41-0137-4599-8661-fc641fe77111";
            var app = ConfidentialClientApplicationBuilder
                .Create(clientID)
                .WithClientSecret(clientSecret)
                .WithAuthority(new Uri($"https://login.microsoftonline.com/{tenantID}/oauth2/v2.0/token"))
                .Build();

            var ApiID = "api://dddd-api";
            var scopes = new[] { ApiID + "/.default" };

            var result = app.AcquireTokenForClient(scopes).ExecuteAsync().Result;

            if (result == null)
                throw new Exception("Could not acquire token");

            return result.AccessToken;
        }
gitignore azure-keyvault secret-key .net-4.7.1 shared-secret
1个回答
0
投票

你可以把值设置为环境变量,然后使用 Environment.GetEnvironmentVariable("<variable name>") 来获取它们。

string clientID = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID");
string clientSecret = Environment.GetEnvironmentVariable("AZURE_CLIENT_SECRET");
string tenantID = Environment.GetEnvironmentVariable("AZURE_TENANT_ID");
© www.soinside.com 2019 - 2024. All rights reserved.