예제 #1
0
        public static PSCredential GetCredential(string name)
        {
            // check if Microsoft.PowerShell.SecretManagement is available
            if (HasSecretManagement())
            {
                var defaultVault = GetDefaultVault();

                if (!string.IsNullOrEmpty(defaultVault))
                {
                    return(GetVaultCredential(defaultVault, name));
                }
            }
            else
            {
                if (OperatingSystem.IsWindows())
                {
                    var cred = ReadWindowsCredentialManagerEntry(name);
                    if (cred == null)
                    {
                        cred = ReadWindowsCredentialManagerEntry($"PnPPS:{name}");
                    }
                    return(cred);
                }
                if (OperatingSystem.IsMacOS())
                {
                    var cred = ReadMacOSKeyChainEntry(name);
                    if (cred == null)
                    {
                        cred = ReadMacOSKeyChainEntry($"PnPPS:{name}");
                    }
                    return(cred);
                }
            }
            return(null);
        }
예제 #2
0
        public static bool AddCredential(string name, string username, SecureString password, bool overwrite)
        {
            if (HasSecretManagement())
            {
                var defaultVault = GetDefaultVault();

                if (!string.IsNullOrEmpty(defaultVault))
                {
                    AddVaultCredential(defaultVault, name, username, password);
                }
            }
            else
            {
                if (!name.StartsWith("PnPPS:"))
                {
                    name = $"PnPPS:{name}";
                }
                if (OperatingSystem.IsWindows())
                {
                    WriteWindowsCredentialManagerEntry(name, username, password);
                }
                else if (OperatingSystem.IsMacOS())
                {
                    WriteMacOSKeyChainEntry(name, username, password, overwrite);
                }
            }
            return(true);
        }
예제 #3
0
        public static bool RemoveCredential(string name)
        {
#if !PNPPSCORE
            var success = DeleteWindowsCredentialManagerEntry(name);
            if (!success)
            {
                success = DeleteWindowsCredentialManagerEntry($"PnPPS:{name}");
            }
            return(success);
#else
            bool success = false;
            if (OperatingSystem.IsWindows())
            {
                success = DeleteWindowsCredentialManagerEntry(name);
                if (!success)
                {
                    success = DeleteWindowsCredentialManagerEntry($"PnPPS:{name}");
                }
            }
            if (OperatingSystem.IsMacOS())
            {
                success = DeleteMacOSKeyChainEntry(name);
                if (!success)
                {
                    success = DeleteMacOSKeyChainEntry($"PnPPS:{name}");
                }
                return(success);
            }
            return(success);
#endif
        }
예제 #4
0
        public static PSCredential GetCredential(string name)
        {
#if !PNPPSCORE
            var cred = ReadWindowsCredentialManagerEntry(name);
            if (cred == null)
            {
                cred = ReadWindowsCredentialManagerEntry($"PnPPS:{name}");
            }
            return(cred);
#else
            if (OperatingSystem.IsWindows())
            {
                var cred = ReadWindowsCredentialManagerEntry(name);
                if (cred == null)
                {
                    cred = ReadWindowsCredentialManagerEntry($"PnPPS:{name}");
                }
                return(cred);
            }
            if (OperatingSystem.IsMacOS())
            {
                var cred = ReadMacOSKeyChainEntry(name);
                if (cred == null)
                {
                    cred = ReadMacOSKeyChainEntry($"PnPPS:{name}");
                }
                return(cred);
            }
            return(null);
#endif
        }
예제 #5
0
 public static bool AddCredential(string name, string username, SecureString password, bool overwrite)
 {
     if (!name.StartsWith("PnPPS:"))
     {
         name = $"PnPPS:{name}";
     }
     if (OperatingSystem.IsWindows())
     {
         WriteWindowsCredentialManagerEntry(name, username, password);
     }
     else if (OperatingSystem.IsMacOS())
     {
         WriteMacOSKeyChainEntry(name, username, password, overwrite);
     }
     return(true);
 }
예제 #6
0
 public static void LaunchBrowser(string url)
 {
     if (OperatingSystem.IsWindows())
     {
         Process.Start(new ProcessStartInfo(url)
         {
             UseShellExecute = true
         });                                                                  // Works ok on windows
     }
     else if (OperatingSystem.IsLinux())
     {
         Process.Start("xdg-open", url);  // Works ok on linux
     }
     else if (OperatingSystem.IsMacOS())
     {
         Process.Start("open", url); // Not tested
     }
 }
예제 #7
0
        public static bool RemoveCredential(string name)
        {
            bool success = false;

            if (HasSecretManagement())
            {
                var defaultVault = GetDefaultVault();

                if (!string.IsNullOrEmpty(defaultVault))
                {
                    RemoveVaultCredential(defaultVault, name);
                    return(true);
                }
            }
            else
            {
                if (OperatingSystem.IsWindows())
                {
                    success = DeleteWindowsCredentialManagerEntry(name);
                    if (!success)
                    {
                        success = DeleteWindowsCredentialManagerEntry($"PnPPS:{name}");
                    }
                }
                if (OperatingSystem.IsMacOS())
                {
                    success = DeleteMacOSKeyChainEntry(name);
                    if (!success)
                    {
                        success = DeleteMacOSKeyChainEntry($"PnPPS:{name}");
                    }
                    return(success);
                }
            }
            return(success);
        }