private static async Task GetUserObjectFromImdsAsync()

in sovereignApplications/confidential/contosoHR/src/Startup.cs [97:119]


        private static async Task<string> GetUserObjectFromImdsAsync()
        {
            string connectionString = string.Empty;
            using (var httpClient = new HttpClient())
            {
                // IMDS requires bypassing proxies.
                WebProxy proxy = new WebProxy();
                HttpClient.DefaultProxy = proxy;
                httpClient.DefaultRequestHeaders.Add("Metadata", "True");
                try
                {
                    var b64connString = await httpClient.GetStringAsync("http://169.254.169.254/metadata/instance/compute/userData?api-version=2021-01-01&format=text");
                    var b64Bytes = Convert.FromBase64String(b64connString);
                    return Encoding.UTF8.GetString(b64Bytes);
                }
                catch (AggregateException ex)
                {
                    // Handle response failures
                    Console.WriteLine("Request failed: " + ex.GetBaseException());
                }
            }
            return connectionString;
        }