예제 #1
0
        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);
        }
예제 #2
0
        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);
        }