private bool ValidateSettings() { if (this.settings == null) { return(false); } try { if ( string.IsNullOrEmpty(UPSBrowserSettings.getStringProperty(settings, "identityProviderName")) || string.IsNullOrEmpty(UPSBrowserSettings.getStringProperty(settings, "tokenSigningCertificateThumbprint")) || string.IsNullOrEmpty(UPSBrowserSettings.getStringProperty(settings, "wsExternalUsersSourceUrl")) ) { return(false); } } catch { return(false); } return(true); }
private bool LoadSettings() { // retrieve saved settings from SPWebApplication property bag settings = UPSBrowserSettings.Settings; try { identityProviderName = UPSBrowserSettings.getStringProperty(settings, "identityProviderName"); } catch { identityProviderName = null; }; return(true); }
private void SaveSettingsButton_Click(object sender, EventArgs e) { UPSBrowserLogger.LogDebug(loggingCategory, "SaveSettingsButton_Click invoked"); UPSBrowserSettings.setStringProperty(settings, "identityProviderName", IdentityProvidersDropDownList.SelectedValue); UPSBrowserSettings.setStringProperty(settings, "tokenSigningCertificateThumbprint", TokenSigningCertificatesDropDownList.SelectedValue); UPSBrowserSettings.setStringProperty(settings, "wsExternalUsersSourceUrl", WSExternalUsersSourceURLTextBox.Text); bool result = SaveSettings(); if (!result) { DisplayCriticalError("Error saving settings!", true); } }
private void ImportUsersStartImportButton_Click(object sender, EventArgs evt) { UPSBrowserLogger.LogDebug(loggingCategory, "ImportUsersStartImportButton_Click invoked"); string resolvedUsersEmails = upsbrowser_import_users_resolved_hiddeninput.Text; List <string> emails = new List <string>(resolvedUsersEmails.Split(';')); emails = emails.Where(email => !string.IsNullOrEmpty(email)).ToList <string>(); //filter out empty emails string wsBaseUrl = UPSBrowserSettings.getStringProperty(this.settings, "wsExternalUsersSourceUrl"); string certThumbprint = UPSBrowserSettings.getStringProperty(this.settings, "tokenSigningCertificateThumbprint"); string identityProviderName = UPSBrowserSettings.getStringProperty(this.settings, "identityProviderName"); TokenSigningCertificate cert = certs.FirstOrDefault(c => c.thumbprint == certThumbprint); List <User> users = null; try { externalUsersSource.Init(wsBaseUrl, cert); users = externalUsersSource.getUsersByEmails(emails); } catch (Exception e) { DisplayCriticalError($"Error getting users from external source: {e.Message}", true); return; }; if ((users != null) && (users.Count > 0)) { foreach (User user in users) { User createdUser = upsUsersDAL.createUser(user, identityProviderName); if (createdUser != null) { string hiddenInputValue = upsbrowser_import_users_resolved_hiddeninput.Text.ToLower(); hiddenInputValue = hiddenInputValue.Replace(createdUser.WorkEmail.ToLower() + ";", ""); upsbrowser_import_users_resolved_hiddeninput.Text = hiddenInputValue; } } ; } ; }
private bool InitSettings() { UPSBrowserLogger.LogDebug(loggingCategory, "InitSettings invoked"); // get the list of certificates installed on SharePoint server to select one of them for token signing certs = certsHelper.getTokenSigningCertificates(); if (userAccessLevel != UserAccessLevels.Admin) { SettingsTabButton.Visible = false; return(true); } List <IdentityProvider> identityProviders = identityProvidersHelper.getIdentityProviders(); if (identityProviders == null || identityProviders.Count == 0) { UPSBrowserLogger.LogError(loggingCategory, "Cannot get the list of identity providers"); return(false); } if (!IsPostBack) { IdentityProvidersDropDownList.Items.Add(new ListItem("Select Identity Provider", "")); foreach (IdentityProvider identityProvider in identityProviders) { IdentityProvidersDropDownList.Items.Add(new ListItem(identityProvider.DisplayName, identityProvider.Name)); } ; string identityProviderName; try { identityProviderName = this.identityProviderName; } catch { identityProviderName = ""; }; ListItem listItem = IdentityProvidersDropDownList.Items.FindByValue(identityProviderName); if (listItem != null) { IdentityProvidersDropDownList.SelectedValue = listItem.Value; } else { IdentityProvidersDropDownList.SelectedValue = ""; }; } ; certs = certsHelper.getTokenSigningCertificates(); if (certs == null || certs.Count == 0) { UPSBrowserLogger.LogError(loggingCategory, "No suitable certificates found to sign tokens for the external web service authentication"); return(false); } if (!IsPostBack) { TokenSigningCertificatesDropDownList.Items.Add(new ListItem("Select certificate to use for token signing", "")); foreach (TokenSigningCertificate cert in certs) { TokenSigningCertificatesDropDownList.Items.Add(new ListItem(cert.friendlyName, cert.thumbprint)); } ; string certThumbprint = UPSBrowserSettings.getStringProperty(this.settings, "tokenSigningCertificateThumbprint"); ListItem listItem = TokenSigningCertificatesDropDownList.Items.FindByValue(certThumbprint); if (listItem != null) { TokenSigningCertificatesDropDownList.SelectedValue = listItem.Value; } else { TokenSigningCertificatesDropDownList.SelectedValue = ""; }; } ; if (!IsPostBack) { string wsBaseUrl = UPSBrowserSettings.getStringProperty(this.settings, "wsExternalUsersSourceUrl"); WSExternalUsersSourceURLTextBox.Text = wsBaseUrl; } ; return(true); //Ok }
public DataTable GetFilteredExternalUsers() { UPSBrowserLogger.LogDebug(loggingCategory, "GetFilteredExternalUsers invoked"); string searchString = upsbrowser_import_users_searchtextbox.Text; string wsBaseUrl = UPSBrowserSettings.getStringProperty(this.settings, "wsExternalUsersSourceUrl"); string certThumbprint = UPSBrowserSettings.getStringProperty(this.settings, "tokenSigningCertificateThumbprint"); UPSBrowserLogger.LogDebug(loggingCategory, $"searchString: {searchString}"); UPSBrowserLogger.LogDebug(loggingCategory, $"wsBaseUrl: {wsBaseUrl}"); UPSBrowserLogger.LogDebug(loggingCategory, $"certThumbprint: {certThumbprint}"); UPSBrowserLogger.LogDebug(loggingCategory, $"certs == null: {certs == null}"); TokenSigningCertificate cert = certs.FirstOrDefault(c => c.thumbprint == certThumbprint); UPSBrowserLogger.LogDebug(loggingCategory, $"cert == null: {cert == null}"); if ( string.IsNullOrEmpty(searchString) || searchString.Length < Constants.searchStringMingLength || string.IsNullOrEmpty(wsBaseUrl) || cert == null ) { UPSBrowserLogger.LogError(loggingCategory, $"Invalid searchString, wsBaseUrl or cert. Returning null."); return(null); } List <User> externalUsers = null; try { externalUsersSource.Init(wsBaseUrl, cert); externalUsers = externalUsersSource.getUsersBySearchString(searchString); } catch (Exception e) { DisplayCriticalError($"Error getting users from external source: {e.Message}", true); return(null); }; if (externalUsers == null) { return(null); } ; DataTable dt = new DataTable(); dt.Columns.Add("DisplayName"); dt.Columns.Add("WorkEmail"); dt.Columns.Add("JobTitle"); dt.Columns.Add("Department"); externalUsers.ForEach((externalUser) => { DataRow dr = dt.NewRow(); dr["DisplayName"] = externalUser.DisplayName; dr["WorkEmail"] = externalUser.WorkEmail; dr["JobTitle"] = externalUser.JobTitle; dr["Department"] = externalUser.Department; dt.Rows.Add(dr); }); return(dt); }