public void TestResolveProfileName() { var envVar = "ACMESHARP_VAULT_PROFILE"; Environment.SetEnvironmentVariable(envVar, ""); Assert.IsTrue(string.IsNullOrEmpty(Environment.GetEnvironmentVariable(envVar))); var profileName = VaultProfileManager.ResolveProfileName(); if (SysHelper.IsElevatedAdmin()) { Assert.AreEqual(VaultProfileManager.PROFILE_DEFAULT_SYS_NAME, profileName); } else { Assert.AreEqual(VaultProfileManager.PROFILE_DEFAULT_USER_NAME, profileName); } Environment.SetEnvironmentVariable(envVar, "FooBar"); Assert.AreEqual("FooBar", Environment.GetEnvironmentVariable(envVar)); profileName = VaultProfileManager.ResolveProfileName(); Assert.AreEqual("FooBar", profileName); profileName = VaultProfileManager.ResolveProfileName(); Assert.AreEqual("FooBar", profileName); profileName = VaultProfileManager.ResolveProfileName("FooBaz"); Assert.AreEqual("FooBaz", profileName); Environment.SetEnvironmentVariable(envVar, ""); Assert.IsTrue(string.IsNullOrEmpty(Environment.GetEnvironmentVariable(envVar))); profileName = VaultProfileManager.ResolveProfileName("FooBaz"); Assert.AreEqual("FooBaz", profileName); }
public static string ResolveProfileName(string name = null) { // Incoming name takes precedence if it is provided // Next, comes an environment variable in scope for the current process if (string.IsNullOrEmpty(name)) { name = Environment.GetEnvironmentVariable(PROFILE_ENV_VAR); } // Finally, we specify a default built-in name based on the // current elevated privilege status for the current process if (string.IsNullOrEmpty(name)) { name = SysHelper.IsElevatedAdmin() ? PROFILE_DEFAULT_SYS_NAME : PROFILE_DEFAULT_USER_NAME; } return(name); }