}// End Method // Method - GetCredentials from CredentialManager public CredentialManagement.Credential GetCred(string AdmUrl) { var cred = new CredentialManagement.Credential(); cred.Target = AdmUrl; cred.Load(); return(cred); }// End Method
/// <summary> /// Stores <see cref="NetworkCredential"/> in Windows' Credential Manager /// </summary> /// <param name="credential">NetworkCredential to save in Credential Manager</param> public void SaveCredential(NetworkCredential credential) { using (var credentialManager = new CredentialManagement.Credential()) { credentialManager.Username = string.IsNullOrEmpty(credential.Domain) ? credential.UserName : $"{credential.Domain}\\{credential.UserName}"; credentialManager.Password = credential.Password; credentialManager.Target = _credentialsName; credentialManager.Type = CredentialManagement.CredentialType.Generic; credentialManager.PersistanceType = CredentialManagement.PersistanceType.LocalComputer; credentialManager.Save(); } }
// Method - SaveCredentials to CredentialManager public void SaveCred(System.Security.SecureString password, string userName, string AdmUrl) { using (var cred = new CredentialManagement.Credential()) { cred.SecurePassword = password; cred.Username = userName; cred.Target = AdmUrl; cred.Type = CredentialManagement.CredentialType.Generic; cred.PersistanceType = CredentialManagement.PersistanceType.LocalComputer; cred.Save(); } }// End Method
}// End Constructor // Method - Store Credentials private void StorePW(object sender, RoutedEventArgs e) { // Tenant = null => return if (string.IsNullOrEmpty(Tenant.Text)) { MessageBox.Show("Please provide a Tenant", "My app", MessageBoxButton.OK, MessageBoxImage.Warning); return; } // We create the PasswordRepository var repo = new PasswordRepository(); // Build the adminUrl from userInput string adminUrl = "https://" + Tenant.Text + "-admin.sharepoint.com"; // If Login Sceanrio => Login if (string.IsNullOrEmpty(TBUN.Text)) { // Get the credentials from Credential Manager CredentialManagement.Credential cred = repo.GetCred(adminUrl); if (cred.Exists()) { this.Hide(); new Sitesmanagement(adminUrl).Show(); return; } else { MessageBox.Show("Please Register this Tenant"); return; } } // If Register Screnario => Register & Login if ((!string.IsNullOrEmpty(TBUN.Text)) && (PBPW.SecurePassword != null)) { try { repo.SaveCred(PBPW.SecurePassword, TBUN.Text, adminUrl); this.Hide(); new Sitesmanagement(adminUrl).Show(); return; } catch (System.Exception ex) { MessageBox.Show(ex.Message, "My app", MessageBoxButton.OK, MessageBoxImage.Warning); } } //else we ask for UserName and PassWord MessageBox.Show("Please provide a UserName and PassWord"); }// End Method
private void StartupDialog_Load(object sender, EventArgs e) { pswTxt.textBox1.TextBox.UseSystemPasswordChar = true; var cred = new CredentialManagement.Credential { Target = (Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false)[0] as AssemblyTitleAttribute).Title }; if (cred.Load()) { userTxt.Text = cred.Username; pswTxt.Text = cred.Password; } }
private void StorePW(object sender, RoutedEventArgs e) { var repo = new PasswordRepository(); var tryConnect = new SPOtLightMenu(); if (!string.IsNullOrEmpty(TBUN.Text)) { repo.SaveCred(PBPW.SecurePassword, TBUN.Text); this.Hide(); } CredentialManagement.Credential cred = repo.GetCred(); if (cred.Exists()) { this.Hide(); new Sitesmanagement().Show(); } }
/// <summary> /// Restores credential from Windows Credential Manager, and stores in <see cref="Credential"/> /// </summary> /// <returns>Credential from Credential Manager</returns> public NetworkCredential GetCredentials() { using (var credentialManager = new CredentialManagement.Credential()) { var credential = new NetworkCredential(); credentialManager.Target = _credentialsName; credentialManager.Load(); if (credentialManager.Exists()) { credential.UserName = credentialManager.Username; // Username was set with domain, for example "DOMAIN\Username" if (credential.UserName.Contains("\\")) { // Domain will be set to a string before backslash. credential.Domain = credential.UserName.Split('\\')[0]; // Username will be set to a string after backslash. credential.UserName = credential.UserName.Split('\\')[1]; } credential.Password = credentialManager.Password; } return(credential); } }
private bool EnsureGitHubClient() { if (gitHubClient == null) { // Load git credentials from Windows credential management store (vault) var credential = new CredentialManagement.Credential { Target = "git:https://github.com" }; if (!credential.Exists()) { MessageBox.Show(Resources.Error_CredentialNotFound.FormatWith(credential.Target)); return(false); } if (!credential.Load()) { MessageBox.Show(Resources.Error_CredentialLoadFailed.FormatWith(credential.Target)); return(false); } gitHubClient = new GitHubClient(new ProductHeaderValue(System.Windows.Forms.Application.ProductName)); gitHubClient.Credentials = new Credentials(credential.Username, credential.Password); try { var repo = gitHubClient.Repository.Get(textBoxOwner.Text, textBoxRepository.Text).Result; repositoryId = repo.Id; return(true); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } return(false); }