public override void AwakeFromNib() { base.AwakeFromNib(); OpenCertificateFileButton.Activated += (object sender, EventArgs e) => { NSOpenPanel openDlg = new NSOpenPanel(); openDlg.CanChooseFiles = true; nint result = openDlg.RunModal(); if (result == (nint)1) { CertificateField.StringValue = openDlg.Url.RelativePath; } }; OpenPrivateKeyFileButton.Activated += (object sender, EventArgs e) => { NSOpenPanel openDlg = new NSOpenPanel(); openDlg.CanChooseFiles = true; nint result = openDlg.RunModal(); if (result == (nint)1) { PrivateKeyField.StringValue = openDlg.Url.RelativePath; } }; AddButton.Activated += OnAddPrivateKey; CancelButton.Activated += (object sender, EventArgs e) => { this.Close(); NSApplication.SharedApplication.StopModalWithCode(0); }; }
private string ShowChooseFolderDialog(string title) { string folder = null; var dialog = new NSOpenPanel(); dialog.Title = title; dialog.ShowsResizeIndicator = true; dialog.ShowsHiddenFiles = false; dialog.CanChooseDirectories = true; dialog.CanCreateDirectories = true; dialog.AllowsMultipleSelection = false; if (dialog.RunModal() == (nint)(int)NSPanelButtonType.Ok) { NSUrl result = dialog.Url; // Pathname of the file if (result != null) { folder = result?.Path; } } return(folder); }
public NSUrl GetFile() { // Create the File Open Dialog class. NSOpenPanel openDlg = NSOpenPanel.OpenPanel; // Enable the selection of files in the dialog. openDlg.CanChooseFiles = true; // Multiple files not allowed openDlg.AllowsMultipleSelection = false; //openDlg. // Can't select a directory openDlg.CanChooseDirectories = false; // Display the dialog. If the OK button was pressed, // process the files. var openResult = openDlg.RunModal(); Console.Write($"{openResult}"); if (openResult == 1) { // Get an array containing the full filenames of all // files and directories selected. NSUrl[] files = openDlg.Urls; // Loop through all the files and process them. return(files[0]); } return(null); }
static Task <IEnumerable <FileResult> > PlatformPickAsync(PickOptions options, bool allowMultiple = false) { var openPanel = new NSOpenPanel { CanChooseFiles = true, AllowsMultipleSelection = allowMultiple, CanChooseDirectories = false }; if (options.PickerTitle != null) { openPanel.Title = options.PickerTitle; } SetFileTypes(options, openPanel); var resultList = new List <FileResult>(); var panelResult = openPanel.RunModal(); if (panelResult == (nint)(long)NSModalResponse.OK) { foreach (var url in openPanel.Urls) { resultList.Add(new FileResult(url.Path)); } } return(Task.FromResult <IEnumerable <FileResult> >(resultList)); }
public string ShowOpenDialog() { NSOpenPanel openPanel = NSOpenPanel.OpenPanel; openPanel.RunModal(); return(openPanel.Filename); }
partial void btnBrowseClick(NSObject sender) { NSOpenPanel panel = NSOpenPanel.OpenPanel; panel.Title = "Choose Unity Project Root Folder"; panel.Message = ""; panel.Prompt = "OK"; panel.CanChooseFiles = false; panel.CanChooseDirectories = true; panel.CanCreateDirectories = false; panel.AllowsMultipleSelection = false; nint res = panel.RunModal("~/", ""); if (res == 1) { fullPath = panel.Url.AbsoluteString.Substring(7); folderText.StringValue = fullPath; } }
/// <summary> /// Menus the open click. /// </summary> public void MenuOpenClick() { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; openPanel.CanChooseDirectories = false; openPanel.CanChooseFiles = true; openPanel.AllowedFileTypes = new string[] { "kdbx" }; var result = openPanel.RunModal(); string fileName; if (result == 1) { fileName = openPanel.Url.AbsoluteString; // arequest password string password = RequestForPassword(); if (password == string.Empty) { return; } OpenDatabase(fileName, password); } }
internal static async Task <IStorageFolder> PickSingleFolderAsync(StorageFolder storageFolder, string message = null) { return(await MainThread.InvokeOnMainThread(() => { var panel = new NSOpenPanel { CanCreateDirectories = true, CanChooseDirectories = true, CanChooseFiles = false, FloatingPanel = true, AllowsMultipleSelection = false, ResolvesAliases = true, DirectoryUrl = storageFolder.Url, Prompt = "THIS IS THE PROMPT!", Title = "TITLE!!!", }; if (!string.IsNullOrWhiteSpace(message)) { panel.Message = message; } panel.RunModal(); if (panel.Url is null) { return Task.FromResult <IStorageFolder>(null); } System.Diagnostics.Debug.WriteLine("panel.Url.Path: " + panel.Url.Path); return Task.FromResult <IStorageFolder>(new StorageFolder(panel.Url, true)); })); }
public override void AwakeFromNib () { base.AwakeFromNib (); OpenCertificateFileButton.Activated += (object sender, EventArgs e) => { NSOpenPanel openDlg = new NSOpenPanel (); openDlg.CanChooseFiles = true; nint result = openDlg.RunModal (); if (result == (nint)1) { CertificateField.StringValue = openDlg.Url.RelativePath; } }; OpenPrivateKeyFileButton.Activated += (object sender, EventArgs e) => { NSOpenPanel openDlg = new NSOpenPanel (); openDlg.CanChooseFiles = true; nint result = openDlg.RunModal (); if (result == (nint)1) { PrivateKeyField.StringValue = openDlg.Url.RelativePath; } }; AddButton.Activated += OnAddPrivateKey; CancelButton.Activated += (object sender, EventArgs e) => { this.Close (); NSApplication.SharedApplication.StopModalWithCode (0); }; }
async void SelectPhoto(Object o, EventArgs e) { NSOpenPanel openDialog = NSOpenPanel.OpenPanel; openDialog.CanChooseFiles = true; openDialog.CanChooseDirectories = false; openDialog.AllowsMultipleSelection = false; if (openDialog.RunModal(new string[] { "jpg", "png" }) == 1) { string fileName = openDialog.Filename; NSImage image = new NSImage(fileName); ThePhoto.Image = image; ClearExistingBorders(); DetailView.TextStorage.SetString(new NSAttributedString("Processing...")); using (FileStream file = new FileStream(fileName, FileMode.Open)) { var faces = await client.DetectAsync(file, true, true, new List <FaceAttributeType>() { FaceAttributeType.Gender, FaceAttributeType.Age, FaceAttributeType.Smile, FaceAttributeType.Glasses }); DetailView.TextStorage.SetString(new NSAttributedString("")); foreach (var face in faces) { FaceRectangle faceRect = face.FaceRectangle; DetailView.TextStorage.Append(FormatRect(faceRect)); DetailView.TextStorage.Append(FormatDetails(face.FaceAttributes)); AddFrameAroundFace(faceRect); } } } }
public Task <FileData> PickFile(string[] allowedTypes, string defaultName, bool saving) { // for consistency with other platforms, only allow selecting of a single file. // would be nice if we passed a "file options" to override picking multiple files & directories var openPanel = new NSOpenPanel(); openPanel.CanChooseFiles = true; openPanel.AllowsMultipleSelection = false; openPanel.CanChooseDirectories = false; // macOS allows the file types to contain UTIs, filename extensions or a combination of the two. // If no types are specified, all files are selectable. if (allowedTypes != null) { openPanel.AllowedFileTypes = allowedTypes; } FileData data = null; var result = openPanel.RunModal(); if (result == 1) { // Nab the first file var url = openPanel.Urls[0]; if (url != null) { var path = url.Path; data = new PlatformFileData(path); } } return(Task.FromResult(data)); }
public Task <FileResult> PickFolder() { // for consistency with other platforms, only allow selecting of a single file. // would be nice if we passed a "file options" to override picking multiple files & directories NSOpenPanel nSOpenPanel1 = new() { CanChooseFiles = false, AllowsMultipleSelection = false, CanChooseDirectories = true }; using (var nSOpenPanel = nSOpenPanel1) { NSOpenPanel openPanel = nSOpenPanel; nint result = openPanel.RunModal(); if (result == 1) { // Nab the first file NSUrl url = openPanel.Urls[0]; return(Task.FromResult(new FileResult(url.Path))); } } return(null); } }
public Task <FileData> PickFile() { // for consistency with other platforms, only allow selecting of a single file. // would be nice if we passed a "file options" to override picking multiple files & directories var openPanel = new NSOpenPanel();; openPanel.CanChooseFiles = true; openPanel.AllowsMultipleSelection = false; openPanel.CanChooseDirectories = false; FileData data = null; var result = openPanel.RunModal(); if (result == 1) { // Nab the first file var url = openPanel.Urls[0]; var fileName = openPanel.Filenames[0]; if (url != null) { var path = url.Path; data = new FileData(path, fileName, () => File.OpenRead(path)); } } return(Task.FromResult(data)); }
/// <summary>Ask user for a directory on OSX.</summary> /// <param name="prompt">String to use as dialog heading.</param> /// <param name="initialPath">Optional initial starting filename or directory.</param> /// <returns>string containing the path to the chosen directory.</returns> static public string OsxDirectoryDialog(string prompt, string initialPath = "") { NSOpenPanel panel = new NSOpenPanel { Title = prompt, CanChooseDirectories = true, CanChooseFiles = false }; if (File.Exists(initialPath)) { panel.DirectoryUrl = new MonoMac.Foundation.NSUrl(Path.GetDirectoryName(initialPath)); panel.NameFieldStringValue = Path.GetFileName(initialPath); } else if (Directory.Exists(initialPath)) { panel.DirectoryUrl = new MonoMac.Foundation.NSUrl(initialPath); } else { panel.DirectoryUrl = new MonoMac.Foundation.NSUrl(Utility.Configuration.Settings.PreviousFolder); } string dir = ""; if (panel.RunModal() == 1 /*NSFileHandlingPanelOKButton*/) { dir = panel.Url.Path; } return(dir); }
protected override bool RunDialog(IntPtr hwndOwner) { using (var context = new ModalDialogContext()) { var panel = new NSOpenPanel(); panel.CanChooseFiles = false; panel.CanChooseDirectories = true; panel.CanCreateDirectories = ShowNewFolderButton; panel.AllowsMultipleSelection = false; panel.ResolvesAliases = true; panel.Title = Description ?? String.Empty; if (Prompt != null) { panel.Prompt = Prompt; } if (!String.IsNullOrWhiteSpace(SelectedPath) && System.IO.Directory.Exists(SelectedPath) && IsSubfolderOf(SelectedPath, RootFolder)) { panel.DirectoryUrl = NSUrl.FromFilename(SelectedPath); } if (NSPanelButtonType.Ok != (NSPanelButtonType)(int)panel.RunModal()) { return(false); } SelectedPath = panel.Url.Path; return(true); } }
partial void SetSyncPath(NSObject sender) { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.CanChooseDirectories = true; openPanel.CanChooseFiles = false; openPanel.CanCreateDirectories = true; openPanel.Prompt = "Select Directory"; var result = openPanel.RunModal(); if (result == 1) { SyncPathTextField.Cell.Title = openPanel.DirectoryUrl.Path; //AppDelegate.FilesystemSyncPath = openPanel.DirectoryUrl.Path; AppDelegate.settings.syncURL = openPanel.DirectoryUrl.Path; SettingsSync.Write(AppDelegate.settings); NSAlert alert = new NSAlert() { MessageText = "File System Sync", InformativeText = "File System Sync path has been set at:\n" + AppDelegate.settings.syncURL, AlertStyle = NSAlertStyle.Warning }; alert.AddButton("OK"); alert.BeginSheet(this.Window, this, null, IntPtr.Zero); } }
public Task <FolderData> PickFolder() { // for consistency with other platforms, only allow selecting of a single file. // would be nice if we passed a "file options" to override picking multiple files & directories var openPanel = new NSOpenPanel(); openPanel.CanChooseFiles = false; openPanel.CanChooseDirectories = true; openPanel.AllowsMultipleSelection = false; var result = openPanel.RunModal(); if (result == 1) { // Nab the first folder var url = openPanel.Urls[0]; if (url != null) { var folder = new FolderData() { FolderPath = url.Path, FolderName = Path.GetDirectoryName(url.Path) }; return(Task.FromResult(folder)); } return(null); } return(null); }
public string OpenFileDialog(NSWindow window, string[] FileTypes, string title, bool canchoosedirectories = false, bool canchoosefiles = true) { string path = string.Empty; try { NSOpenPanel dlg = NSOpenPanel.OpenPanel; //dlg.Prompt = "Selecione um Arquivo"; dlg.Title = title; dlg.CanChooseFiles = canchoosefiles; dlg.CanChooseDirectories = canchoosedirectories; dlg.AllowedFileTypes = FileTypes; dlg.AllowsMultipleSelection = false; dlg.ResolvesAliases = true; dlg.ReleasedWhenClosed = true; // dlg.BeginSheet(window, (i) => { // try // { // if(dlg.Url != null) // { // // // var urlString = dlg.Url.Path; // // if(!string.IsNullOrEmpty(urlString)) // { // Console.WriteLine(urlString); // } // } // } // finally // { // dlg.Dispose(); // } // }); // nint retDlg = dlg.RunModal(); if (retDlg == 1) { NSUrl url = dlg.Urls [0]; if (url != null) { path = url.Path; } } NSDate DateLoop = new NSDate(); DateLoop = DateLoop.AddSeconds(0.1); NSRunLoop.Current.RunUntil(DateLoop); dlg.Dispose(); dlg = null; } catch (Exception) { // } return(path); }
partial void SelectFile(NSObject sender) { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select a file or a folder"; openPanel.CanChooseDirectories = true; var result = openPanel.RunModal(); if (result == 1) { DataAccess.Instance.g_WorkingDir = openPanel.Url.ToString(); //.Filename; if (DataAccess.Instance.g_WorkingDir.Contains("file://")) { DataAccess.Instance.g_WorkingDir = DataAccess.Instance.g_WorkingDir.Replace("file://", ""); } InputTbox.StringValue = DataAccess.Instance.g_WorkingDir; //check if file or folder if (File.Exists(DataAccess.Instance.g_WorkingDir)) //is a file { //check the extension var ext = Path.GetExtension(DataAccess.Instance.g_WorkingDir).ToLower(); if (ext == ".pdf") { PdfCbzChk.State = NSCellStateValue.On; CbrPdfChk.State = NSCellStateValue.Off; JoinImgChk.State = NSCellStateValue.On; } else if (ext == ".cbr" || ext == ".cbz") { PdfCbzChk.State = NSCellStateValue.Off; CbrPdfChk.State = NSCellStateValue.On; JoinImgChk.State = NSCellStateValue.Off; } } else //is a folder { PdfCbzChk.State = NSCellStateValue.On; CbrPdfChk.State = NSCellStateValue.On; JoinImgChk.State = NSCellStateValue.On; } _fileSelected = true; //if (this.chk_SourceFolder.Checked) //always true for now { // _outputFolderSelected = true; DataAccess.Instance.g_Output_dir = Path.GetDirectoryName(DataAccess.Instance.g_WorkingDir); //this.tbox_OuputFolder.Text = this.tbox_SourceFile.Text; } } }
public override void ViewDidLoad() { base.ViewDidLoad(); //блок инициализации полей NameField.StringValue = item.Name; BrandField.StringValue = item.Brand; PriceField.IntValue = item.Price; AvailableField.IntValue = item.Available; Desc.Value = item.Description; Imageview.Image = NSImage.FromStream(new MemoryStream(item.Image)); //Кнопка отмены CancelButton.Activated += (sender, e) => DismissViewController(this); //Кнопка изменения с делегатом для обратного вызова в методе PrepareForsegue(адресата) EditedButton.Activated += (sender, e) => { if (CheckExpressions()) { item.Name = NameField.StringValue; item.Brand = BrandField.StringValue; item.Price = PriceField.IntValue; item.Available = AvailableField.IntValue; item.Description = Desc.Value; try { //Запрос к бд на изменение элемента SqlClass.EditRow(item); addOne(this, new EventArgs()); DismissViewController(this); } catch { (SqlClass.GetError("Не удалось добавить поле")).RunModal(); } } else { (SqlClass.GetError("Поля введены не верно")).RunModal(); } }; UploadButton.Activated += (sender, e) => { NSOpenPanel openpanel = new NSOpenPanel(); openpanel.AllowedFileTypes = new string[] { @"jpg" }; openpanel.RunModal(); Imageview.Image = new NSImage(openpanel.Url); if (openpanel.Url.Path != null) { item.Image = File.ReadAllBytes(openpanel.Url.Path); } }; }
public string PickImageFilename() { var panel = new NSOpenPanel() { Title = "Background Image for Song", AllowedFileTypes = new string[] { "jpg", "jpeg", "gif", "bmp", "png", "tif", "tiff", "tga" }, AllowsOtherFileTypes = true, AllowsMultipleSelection = false, CanChooseFiles = true, CanChooseDirectories = false }; return((panel.RunModal() == 1) ? panel.Url?.Path ?? null : null); }
public string RetargetSongFilename() { var panel = new NSOpenPanel() { Title = "Retarget Metadata", AllowedFileTypes = (from e in GuiController.SongExtensions select e.Substring(1)).ToArray(), AllowsOtherFileTypes = true, AllowsMultipleSelection = false, CanChooseFiles = true, CanChooseDirectories = false }; return((panel.RunModal() == 1) ? panel.Url?.Path ?? null : null); }
public FileInfo PickImageFile() { var ofd = new NSOpenPanel { AllowedFileTypes = new[] { "png", "jpg" } }; var ret = ofd.RunModal(); return(ret < 1 ? null : new FileInfo(ofd.Url.Path)); }
public Task <string> SelectSingle() { var ofd = new NSOpenPanel { AllowedFileTypes = new[] { "png", "jpg" } }; var ret = ofd.RunModal(); return(Task.FromResult(ret < 1 ? "" : ofd.Url.Path)); }
public bool Run (AddFileDialogData data) { using (var panel = new NSOpenPanel { CanChooseDirectories = false, CanChooseFiles = true, }) { MacSelectFileDialogHandler.SetCommonPanelProperties (data, panel); var popup = new NSPopUpButton (new CGRect (0, 0, 200, 28), false); var dropdownBox = new MDBox (LayoutDirection.Horizontal, 2, 0) { { new MDLabel (GettextCatalog.GetString ("Override build action:")), true }, { new MDAlignment (popup, true) { MinWidth = 200 } } }; var filterPopup = MacSelectFileDialogHandler.CreateFileFilterPopup (data, panel); if (filterPopup != null) { dropdownBox.Layout (); var box = new MDBox (LayoutDirection.Vertical, 2, 2) { dropdownBox.View, filterPopup, }; box.Layout (); panel.AccessoryView = box.View; if (box.View.Superview != null) box.Layout (box.View.Superview.Frame.Size); } else { dropdownBox.Layout (); panel.AccessoryView = dropdownBox.View; } popup.AddItem (GettextCatalog.GetString ("(Default)")); popup.Menu.AddItem (NSMenuItem.SeparatorItem); foreach (var b in data.BuildActions) { if (b == "--") popup.Menu.AddItem (NSMenuItem.SeparatorItem); else popup.AddItem (b); } if (panel.RunModal () == 0) { GtkQuartz.FocusWindow (data.TransientFor ?? MessageService.RootWindow); return false; } data.SelectedFiles = MacSelectFileDialogHandler.GetSelectedFiles (panel); var idx = popup.IndexOfSelectedItem - 2; if (idx >= 0) data.OverrideAction = data.BuildActions[idx]; GtkQuartz.FocusWindow (data.TransientFor ?? MessageService.RootWindow); return true; } }
public void OpenCertFile (object sender, EventArgs eventargs) { NSOpenPanel openDlg = new NSOpenPanel (); openDlg.CanChooseFiles = true; //TODO - what are the cert file types to be shown? //openDlg.AllowedFileTypes = new string[] { "crt" }; nint result = openDlg.RunModal (); if (result == (nint)1) { CertPathTxtField.StringValue = openDlg.Url.RelativePath; AddCertificateDto.Certificate = openDlg.Url.RelativePath; } }
void OpenCertificateFile(object sender, EventArgs args) { NSOpenPanel openDlg = new NSOpenPanel(); openDlg.CanChooseFiles = true; nint result = openDlg.RunModal(); if (result == (nint)1) { CertificateField.StringValue = openDlg.Url.RelativePath; } }
public Task <FileData> PickFile(string[] allowedTypes, FileOptions fileOptions = null) { if (fileOptions is null) { fileOptions = new FileOptions(); } // for consistency with other platforms, only allow selecting of a single file. // would be nice if we passed a "file options" to override picking multiple files & directories var openPanel = new NSOpenPanel(); openPanel.CanChooseFiles = fileOptions.CanChooseFiles; openPanel.AllowsMultipleSelection = fileOptions.AllowsMultipleSelection; openPanel.CanChooseDirectories = fileOptions.CanChooseDirectories; // macOS allows the file types to contain UTIs, filename extensions or a combination of the two. // If no types are specified, all files are selectable. if (allowedTypes != null) { openPanel.AllowedFileTypes = allowedTypes; } FileData data = null; var result = openPanel.RunModal(); if (result == 1) { // Nab the first file var url = openPanel.Urls[0]; if (url != null) { var path = url.Path; var fileName = Path.GetFileName(path); Func <Stream> streamGetter; if (Directory.Exists(path)) { streamGetter = () => Stream.Null; } else { streamGetter = () => File.OpenRead(path); } data = new FileData(path, fileName, streamGetter); } } return(Task.FromResult(data)); }
partial void EmulatorSelectButton(NSObject sender) { var openPanel = new NSOpenPanel { Title = "Select Emulator to Run", AllowedFileTypes = new string[] { "app" } }; if (openPanel.RunModal() == 1) { EmulatorField.StringValue = openPanel.Url.Path; } }
partial void FileButtonAction(NSObject sender) { var openPanel = new NSOpenPanel(); openPanel.FloatingPanel = true; openPanel.CanChooseFiles = true; openPanel.CanChooseDirectories = false; if (openPanel.RunModal() == 1) { Filename = openPanel.Url.Path; } }
partial void BrowseInput(NSObject sender) { NSOpenPanel panel = NSOpenPanel.OpenPanel; panel.CanChooseFiles = true; panel.CanChooseDirectories = true; panel.AllowedFileTypes = new string[] { "lxf", "lxfml" }; if (panel.RunModal() == 1) { InputPathTextField.StringValue = panel.Urls[0].Path; } }
partial void openSelectFileDialog(MonoMac.Foundation.NSObject sender) { NSOpenPanel panel = NSOpenPanel.OpenPanel; panel.AllowsMultipleSelection = false; panel.CanChooseDirectories = false; int result = panel.RunModal(); if (result == 1) { txt_input.StringValue = panel.Url.Path; } }
partial void BrowseDB(NSObject sender) { NSOpenPanel panel = NSOpenPanel.OpenPanel; panel.CanChooseFiles = false; panel.CanChooseDirectories = true; panel.TreatsFilePackagesAsDirectories = true; if (panel.RunModal() == 1) { DBPathTextField.StringValue = panel.Urls[0].Path; } }
void OpenDocument(NSObject sender) { var panel = new NSOpenPanel () { AllowedFileTypes = new [] {"nupkg"}, AllowsMultipleSelection = false, CanChooseDirectories = false, ShowsHiddenFiles = true, Title = "Open NuGet Package (*.nupkg)" }; if (panel.RunModal () == NSFileHandlingPanelOKButton) { NSUrl file = panel.Url; } }
public override void AwakeFromNib () { base.AwakeFromNib (); SolutionUserDto = SolutionUserDtoOriginal.DeepCopy(); TxtName.StringValue = SolutionUserDto.Name; TxtDescription.StringValue = string.IsNullOrEmpty(SolutionUserDto.Description)?string.Empty:SolutionUserDto.Description; CbDisabled.StringValue = SolutionUserDto.Disabled ? "1" : "0"; Window.Title = SolutionUserDto.Name + " Properties"; var cert = new X509Certificate2 (Encoding.ASCII.GetBytes(SolutionUserDto.Certificate.Encoded)); try { TxtIssuer.StringValue = cert.Issuer; TxtValidFrom.StringValue = cert.NotBefore.ToShortDateString(); TxtValidTo.StringValue = cert.NotAfter.ToShortDateString(); TxtDC.StringValue = cert.IssuerName.Format(true); } catch (Exception) { UtilityService.ShowAlert ("Invalid X509 certificate", "Alert"); } //Events this.BtnSave.Activated += OnClickSaveButton; this.BtnClose.Activated += (object sender, EventArgs e) => { this.Close (); NSApplication.SharedApplication.StopModalWithCode (0); }; this.BtnChangeCertificate.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); var cert1 = new X509Certificate2 (); try { cert1.Import (filePath); TxtIssuer.StringValue = cert1.Issuer; TxtValidFrom.StringValue = cert1.NotBefore.ToShortDateString(); TxtValidTo.StringValue = cert1.NotAfter.ToShortDateString(); TxtDC.StringValue = cert1.IssuerName.Format(true); } catch (Exception) { UtilityService.ShowAlert ("Invalid X509 certificate", "Alert"); } SolutionUserDto.Certificate.Encoded = cert.ToPem(); } }; }
void OpenCertificateFile (object sender, EventArgs args) { NSOpenPanel openDlg = new NSOpenPanel (); openDlg.CanChooseFiles = true; nint result = openDlg.RunModal (); if (result == (nint)1) { CertificateField.StringValue = openDlg.Url.RelativePath; } }
public override void AwakeFromNib () { base.AwakeFromNib (); ExternalIdentityProviderDto = new ExternalIdentityProviderDto () { NameIDFormats = new List<string>(), SubjectFormats = new Dictionary<string, string>(), SsoServices = new List<ServiceEndpointDto>(), SloServices = new List<ServiceEndpointDto>(), SigningCertificates = new CertificateChainDto{ Certificates = new List<CertificateDto>() } }; // Name Id formats BtnAddNameIdFormat.Activated += (object sender, EventArgs e) => { if(string.IsNullOrEmpty(TxtNameIdFormat.StringValue)) { UIErrorHelper.ShowAlert ("Name Id format cannot be empty", "Alert"); return; } ExternalIdentityProviderDto.NameIDFormats.Add(TxtNameIdFormat.StringValue); ReloadTableView(LstNameIdFormat, ExternalIdentityProviderDto.NameIDFormats); TxtNameIdFormat.StringValue = (NSString)string.Empty; }; BtnRemoveNameIdFormat.Activated += (object sender, EventArgs e) => { if (LstNameIdFormat.SelectedRows.Count > 0) { foreach (var row in LstNameIdFormat.SelectedRows) { ExternalIdentityProviderDto.NameIDFormats.RemoveAt((int)row); } ReloadTableView(LstNameIdFormat, ExternalIdentityProviderDto.NameIDFormats); } }; ReloadTableView(LstNameIdFormat, ExternalIdentityProviderDto.NameIDFormats); // Subject formats BtnAddSubjectFormat.Activated += (object sender, EventArgs e) => { if(string.IsNullOrEmpty(TxtSubjectFormatName.StringValue)) { UIErrorHelper.ShowAlert ("Subject format name cannot be empty", "Alert"); return; } if(string.IsNullOrEmpty(TxtSubjectFormatValue.StringValue)) { UIErrorHelper.ShowAlert ("Subject format value cannot be empty", "Alert"); return; } if(ExternalIdentityProviderDto.SubjectFormats.ContainsKey(TxtSubjectFormatName.StringValue)) { UIErrorHelper.ShowAlert ("Subject format name already exists", "Alert"); return; } ExternalIdentityProviderDto.SubjectFormats.Add(TxtSubjectFormatName.StringValue, TxtSubjectFormatValue.StringValue); ReloadTableView(LstSubjectFormat, ExternalIdentityProviderDto.SubjectFormats); TxtSubjectFormatName.StringValue = (NSString)string.Empty; TxtSubjectFormatValue.StringValue = (NSString)string.Empty; }; BtnRemoveSubjectFormat.Activated += (object sender, EventArgs e) => { if (LstSubjectFormat.SelectedRows.Count > 0) { foreach (var row in LstSubjectFormat.SelectedRows) { var source = LstSubjectFormat.DataSource as DictionaryDataSource; var name = source.Entries[(int)row]; ExternalIdentityProviderDto.SubjectFormats.Remove(name); } ReloadTableView(LstSubjectFormat, ExternalIdentityProviderDto.SubjectFormats); } }; ReloadTableView(LstSubjectFormat, ExternalIdentityProviderDto.SubjectFormats); // Certificates BtnAddCertificate.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); var cert = new X509Certificate2 (); ActionHelper.Execute (delegate() { cert.Import (filePath); var certfificateDto = new CertificateDto { Encoded = cert.ToPem(), }; ExternalIdentityProviderDto.SigningCertificates.Certificates.Add(certfificateDto); ReloadCertificates(); }); } }; BtnRemoveCertificate.Activated += (object sender, EventArgs e) => { if (LstCertificates.SelectedRows.Count > 0) { foreach (var row in LstCertificates.SelectedRows) { ExternalIdentityProviderDto.SigningCertificates.Certificates.RemoveAt ((int)row); } ReloadCertificates(); } }; ReloadCertificates (); // Sso Services BtnAddSso.Activated += OnAddSsoServices; BtnRemoveSso.Activated += OnRemoveSsoServices; InitializeSsoServices (); // Slo Services BtnAddSlo.Activated += OnAddSloServices; BtnRemoveSlo.Activated += OnRemoveSloServices; InitializeSloServices (); this.BtnSave.Activated += (object sender, EventArgs e) => { if (string.IsNullOrEmpty (TxtUniqueId.StringValue)) { UIErrorHelper.ShowAlert ("Please choose a Unique Id", "Alert"); } else if (ExternalIdentityProviderDto.NameIDFormats.Count() < 1) { UIErrorHelper.ShowAlert ("Please choose a Name Id format", "Alert"); } else if (ExternalIdentityProviderDto.SubjectFormats.Count() < 1) { UIErrorHelper.ShowAlert ("Please choose a Subject Id format", "Alert"); } else if (ExternalIdentityProviderDto.SsoServices.Count() < 1) { UIErrorHelper.ShowAlert ("Please choose a Sso Service", "Alert"); } else if (ExternalIdentityProviderDto.SloServices.Count() < 1) { UIErrorHelper.ShowAlert ("Please choose a Slo service", "Alert"); } else if (ExternalIdentityProviderDto.SigningCertificates.Certificates.Count() < 1) { UIErrorHelper.ShowAlert ("Please choose a certificate", "Alert"); } else { ExternalIdentityProviderDto.EntityID = TxtUniqueId.StringValue; ExternalIdentityProviderDto.JitEnabled = ChkJit.StringValue == "1"; ActionHelper.Execute(delegate { var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(ServerDto.ServerName); SnapInContext.Instance.ServiceGateway.ExternalIdentityProvider.Create(ServerDto,TenantName,ExternalIdentityProviderDto,auth.Token); this.Close (); NSApplication.SharedApplication.StopModalWithCode (1); }); } }; BtnClose.Activated += (object sender, EventArgs e) => { this.Close (); NSApplication.SharedApplication.StopModalWithCode (0); }; BtnViewCertificate.Activated += (object sender, EventArgs e) => { if (LstCertificates.SelectedRows.Count > 0) { var row = LstCertificates.SelectedRows.First(); var encoded = ExternalIdentityProviderDto.SigningCertificates.Certificates[(int)row].Encoded; var bytes = System.Text.Encoding.ASCII.GetBytes (encoded); var certificate = new X509Certificate2(bytes); CertificateService.DisplayX509Certificate2(this, certificate); } }; }
public override void AwakeFromNib () { base.AwakeFromNib (); OidcClientDto = new OidcClientDto { OidcClientMetadataDTO = new OidcClientMetadataDto { RedirectUris=new List<string>(), PostLogoutRedirectUris = new List<string>() } }; BtnSelectCertificate.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); var cert = new X509Certificate2 (); ActionHelper.Execute (delegate() { cert.Import (filePath); TxtCertificateDN.StringValue = cert.Subject; }); } }; BtnAddRedirectUri.Activated += (object sender, EventArgs e) => { if(string.IsNullOrEmpty(TxtRedirectUri.StringValue)) { UIErrorHelper.ShowAlert ("Redirect Uri cannot be empty", "Alert"); return; } else if(!WebUtil.IsValidHttpUrl(TxtRedirectUri.StringValue)) { UIErrorHelper.ShowAlert ("Redirect Uri is invalid", "Alert"); return; } OidcClientDto.OidcClientMetadataDTO.RedirectUris.Add(TxtRedirectUri.StringValue); ReloadTableView(RedirectUriTableView, OidcClientDto.OidcClientMetadataDTO.RedirectUris); TxtRedirectUri.StringValue = (NSString)string.Empty; }; BtnAddPostLogoutRedirectUri.Activated += (object sender, EventArgs e) => { if(string.IsNullOrEmpty(TxtPostLogoutRedirectUri.StringValue)) { UIErrorHelper.ShowAlert ("Post logout redirect Uri cannot be empty", "Alert"); return; } else if(!WebUtil.IsValidHttpUrl(TxtPostLogoutRedirectUri.StringValue)) { UIErrorHelper.ShowAlert ("Post logout is invalid", "Alert"); return; } OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris.Add(TxtPostLogoutRedirectUri.StringValue); ReloadTableView(PostLogoutUtiTableView, OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris); TxtPostLogoutRedirectUri.StringValue = (NSString)string.Empty; }; BtnRemoveRedirectUri.Activated += (object sender, EventArgs e) => { if (RedirectUriTableView.SelectedRows.Count > 0) { foreach (var row in RedirectUriTableView.SelectedRows) { OidcClientDto.OidcClientMetadataDTO.RedirectUris.RemoveAt((int)row); } ReloadTableView(RedirectUriTableView, OidcClientDto.OidcClientMetadataDTO.RedirectUris); } }; BtnRemovePostLogoutRedirectUri.Activated += (object sender, EventArgs e) => { if (PostLogoutUtiTableView.SelectedRows.Count > 0) { foreach (var row in PostLogoutUtiTableView.SelectedRows) { OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris.RemoveAt((int)row); } ReloadTableView(PostLogoutUtiTableView, OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris); } }; BtnClose.Activated += (object sender, EventArgs e) => { OidcClientDto = null; this.Close (); NSApplication.SharedApplication.StopModalWithCode (0); }; this.BtnSave.Activated += (object sender, EventArgs e) => { if (string.IsNullOrEmpty (TxtCertificateDN.StringValue)) { UIErrorHelper.ShowAlert ("Please choose a valid certificate", "Alert"); } else if (string.IsNullOrEmpty (TxtLogoutUri.StringValue) || !WebUtil.IsValidHttpUrl(TxtLogoutUri.StringValue)) { UIErrorHelper.ShowAlert ("Please enter valid logout uri", "Alert"); } else if (OidcClientDto.OidcClientMetadataDTO.RedirectUris.Count == 0) { UIErrorHelper.ShowAlert ("Please enter a valid redirect URI", "Alert"); } else if (OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris.Count == 0) { UIErrorHelper.ShowAlert ("Please enter a valid post logout redirect URI", "Alert"); }else { OidcClientDto.OidcClientMetadataDTO.LogoutUri = TxtLogoutUri.StringValue; OidcClientDto.OidcClientMetadataDTO.TokenEndpointAuthMethod = (NSString)CbAuthTokenMethod.SelectedValue; OidcClientDto.OidcClientMetadataDTO.CertSubjectDN = TxtCertificateDN.StringValue; this.Close (); NSApplication.SharedApplication.StopModalWithCode (1); } }; CbAuthTokenMethod.SelectItem (0); }
public override void AwakeFromNib () { base.AwakeFromNib (); OidcClientDto = new OidcClientDto { ClientId = OidcClientDtoOriginal.ClientId, OidcClientMetadataDTO = new OidcClientMetadataDto { RedirectUris = OidcClientDtoOriginal.OidcClientMetadataDTO.RedirectUris, PostLogoutRedirectUris = OidcClientDtoOriginal.OidcClientMetadataDTO.PostLogoutRedirectUris, CertSubjectDN = OidcClientDtoOriginal.OidcClientMetadataDTO.CertSubjectDN, LogoutUri = OidcClientDtoOriginal.OidcClientMetadataDTO.LogoutUri, TokenEndpointAuthMethod = OidcClientDtoOriginal.OidcClientMetadataDTO.TokenEndpointAuthMethod } }; TxtName.StringValue = OidcClientDtoOriginal.ClientId; var authIndex = OidcClientDtoOriginal.OidcClientMetadataDTO.TokenEndpointAuthMethod == "none" ? 0 : 1; CbTokenAuthMethod.SelectItem (authIndex); TxtLogoutUrl.StringValue = string.IsNullOrEmpty (OidcClientDtoOriginal.OidcClientMetadataDTO.LogoutUri) ? string.Empty : OidcClientDtoOriginal.OidcClientMetadataDTO.LogoutUri; TxtCertificateDN.StringValue = string.IsNullOrEmpty (OidcClientDtoOriginal.OidcClientMetadataDTO.CertSubjectDN) ? string.Empty : OidcClientDtoOriginal.OidcClientMetadataDTO.CertSubjectDN; ReloadTableView(RedirectUriTableView, OidcClientDto.OidcClientMetadataDTO.RedirectUris); ReloadTableView(PostLogoutRedirectUriTableView, OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris); BtnBrowseCertificate.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); var cert = new X509Certificate2 (); ActionHelper.Execute (delegate() { cert.Import (filePath); TxtCertificateDN.StringValue = cert.Subject; }); } }; BtnAddRedirectUri.Activated += (object sender, EventArgs e) => { if(string.IsNullOrEmpty(TxtRedirectUri.StringValue)) { UIErrorHelper.ShowAlert ("Redirect Uri cannot be empty", "Alert"); return; } else if(!WebUtil.IsValidHttpUrl(TxtRedirectUri.StringValue)) { UIErrorHelper.ShowAlert ("Redirect Uri is invalid", "Alert"); return; } OidcClientDto.OidcClientMetadataDTO.RedirectUris.Add(TxtRedirectUri.StringValue); ReloadTableView(RedirectUriTableView, OidcClientDto.OidcClientMetadataDTO.RedirectUris); TxtRedirectUri.StringValue = (NSString)string.Empty; }; BtnAddPostLogoutRedirectUri.Activated += (object sender, EventArgs e) => { if(string.IsNullOrEmpty(TxtPostLogoutRedirectUri.StringValue)) { UIErrorHelper.ShowAlert ("Post logout redirect Uri cannot be empty", "Alert"); return; } else if(!WebUtil.IsValidHttpUrl(TxtPostLogoutRedirectUri.StringValue)) { UIErrorHelper.ShowAlert ("Post logout is invalid", "Alert"); return; } OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris.Add(TxtPostLogoutRedirectUri.StringValue); ReloadTableView(PostLogoutRedirectUriTableView, OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris); TxtPostLogoutRedirectUri.StringValue = (NSString)string.Empty; }; BtnRemoveRedirectUri.Activated += (object sender, EventArgs e) => { if (RedirectUriTableView.SelectedRows.Count > 0) { foreach (var row in RedirectUriTableView.SelectedRows) { OidcClientDto.OidcClientMetadataDTO.RedirectUris.RemoveAt((int)row); } ReloadTableView(RedirectUriTableView, OidcClientDto.OidcClientMetadataDTO.RedirectUris); } }; BtnRemovePostLogoutRedirectUri.Activated += (object sender, EventArgs e) => { if (PostLogoutRedirectUriTableView.SelectedRows.Count > 0) { foreach (var row in PostLogoutRedirectUriTableView.SelectedRows) { OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris.RemoveAt((int)row); } ReloadTableView(PostLogoutRedirectUriTableView, OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris); } }; this.BtnApply.Activated += (object sender, EventArgs e) => { ActionHelper.Execute (delegate() { if (string.IsNullOrEmpty (TxtCertificateDN.StringValue)) { UIErrorHelper.ShowAlert ("Please choose a valid certificate", "Alert"); } else if (string.IsNullOrEmpty (TxtLogoutUrl.StringValue) || !WebUtil.IsValidHttpUrl(TxtLogoutUrl.StringValue)) { UIErrorHelper.ShowAlert ("Please enter valid logout uri", "Alert"); } else if (OidcClientDto.OidcClientMetadataDTO.RedirectUris.Count == 0) { UIErrorHelper.ShowAlert ("Please enter a valid redirect URI", "Alert"); } else if (OidcClientDto.OidcClientMetadataDTO.PostLogoutRedirectUris.Count == 0) { UIErrorHelper.ShowAlert ("Please enter a valid post logout redirect URI", "Alert"); } else { OidcClientDto.OidcClientMetadataDTO.LogoutUri = TxtLogoutUrl.StringValue; OidcClientDto.OidcClientMetadataDTO.TokenEndpointAuthMethod = (NSString)CbTokenAuthMethod.SelectedValue; OidcClientDto.OidcClientMetadataDTO.CertSubjectDN = TxtCertificateDN.StringValue; var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken (ServerDto.ServerName); OidcClientDto = SnapInContext.Instance.ServiceGateway.OidcClient.Update (ServerDto, TenantName, OidcClientDto.ClientId, OidcClientDto.OidcClientMetadataDTO, auth.Token); NSNotificationCenter.DefaultCenter.PostNotificationName ("RefreshTableView", this); } }); }; }
public override void AwakeFromNib () { base.AwakeFromNib (); _certs = new List<string> (); TxtTenantName.Enabled = !UpdateCredentials; txtUsername.Enabled = !UpdateCredentials; TxtPassword.Enabled = !UpdateCredentials; if (UpdateCredentials) TxtTenantName.StringValue = TenantDto.Name; else TenantDto = new TenantDto (); TenantDto.Credentials = new TenantCredentialsDto(){Certificates = new List<CertificateDto>()}; BtnAddCertificate.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); var cert = new X509Certificate2 (); ActionHelper.Execute (delegate() { cert.Import (filePath); _certs.Add(filePath); var certfificateDto = new CertificateDto { Encoded = cert.ToPem(), }; TenantDto.Credentials.Certificates.Add(certfificateDto); ReloadCertificates(); }); } }; BtnRemoveCertificate.Activated += (object sender, EventArgs e) => { if (CertificateChainTableView.SelectedRows.Count > 0) { foreach (var row in CertificateChainTableView.SelectedRows) { _certs.RemoveAt ((int)row); TenantDto.Credentials.Certificates.RemoveAt ((int)row); } ReloadCertificates(); } }; BtnBrowsePrivateKey.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); ActionHelper.Execute (delegate() { var text = System.IO.File.ReadAllText(filePath); var privateKey = PrivateKeyHelper.ExtractBase64EncodedPayload(text); TxtPrivateKeyPath.StringValue = filePath; TenantDto.Credentials.PrivateKey = new PrivateKeyDto(){ Algorithm = EncrptionAlgorithm.RSA, Encoded = privateKey }; }); } }; BtnClose.Activated += (object sender, EventArgs e) => { TenantDto = null; this.Close (); NSApplication.SharedApplication.StopModalWithCode (0); }; this.BtnSave.Activated += (object sender, EventArgs e) => { if (!UpdateCredentials && string.IsNullOrEmpty (TxtTenantName.StringValue)) { UIErrorHelper.ShowAlert ("Please enter valid tenant name", "Alert"); } else if (!UpdateCredentials && string.IsNullOrEmpty (txtUsername.StringValue)) { UIErrorHelper.ShowAlert ("Please enter valid username", "Alert"); } else if (!UpdateCredentials && string.IsNullOrEmpty (TxtPassword.StringValue)) { UIErrorHelper.ShowAlert ("Please enter valid password", "Alert"); } else if (string.IsNullOrEmpty (TxtPrivateKeyPath.StringValue)) { UIErrorHelper.ShowAlert ("Please enter valid private key", "Alert"); } else if (_certs.Count < 2) { UIErrorHelper.ShowAlert ("Please enter atleast 2 valid Certificates", "Alert"); } else { TenantDto.Name = TxtTenantName.StringValue; TenantDto.Username = txtUsername.StringValue; TenantDto.Password = TxtPassword.StringValue; this.Close (); NSApplication.SharedApplication.StopModalWithCode (1); } }; }
void OnBrowseCertificate (object sender, EventArgs e) { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); var cert = new X509Certificate2 (); ActionHelper.Execute (delegate() { cert.Import (filePath); _certificate = cert; }); TxtCertificate.StringValue = filePath; } }
public override void AwakeFromNib () { base.AwakeFromNib (); //Events this.BtnAcquireToken.Activated += OnClickAddButton; this.BtnClose.Activated += (object sender, EventArgs e) => { this.Close (); NSApplication.SharedApplication.StopModalWithCode (0); }; this.BtnSelectCertificate.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); var cert1 = new X509Certificate2 (); ActionHelper.Execute (delegate() { cert1.Import (filePath); TxtCertificate.StringValue = filePath; }); } }; this.BtnSelectPrivateKey.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); ActionHelper.Execute (delegate() { TxtPrivateKey.StringValue = filePath; }); } }; this.BtnBrowseTokenFile.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); ActionHelper.Execute (delegate() { TxtTokenFile.StringValue = filePath; }); } }; this.CbSaml.Activated += (object sender, EventArgs e) => { var legacy = this.CbSaml.StringValue == "1"; this.TxtStsUrl.Hidden = !legacy; this.LblStsUrl.Hidden = !legacy; SetUrl(this,EventArgs.Empty); PnlJwt.Hidden = legacy; PnlSaml.Hidden = !legacy; }; this.RdoTypeGroup.Activated += (object sender, EventArgs e) => { SetGroupControls(); }; this.TxtServer.Changed += SetUrl; this.TxtPort.Changed += SetUrl; this.TxtStsUrl.Changed += SetUrl; this.TxtTenant.Changed += SetUrl; this.CbSsl.Activated += SetUrl; var saml = false; this.RdoTypeGroup.SelectCellWithTag (1); SetGroupControls (); if (ServerDto != null) { this.TxtServer.StringValue = ServerDto.ServerName; this.TxtStsUrl.StringValue = ServerDto.TokenType == TokenType.SAML ? (string.IsNullOrEmpty(ServerDto.StsUrl) ? "sts/STSService" : ServerDto.StsUrl) : "sts/STSService" ; this.TxtPort.StringValue = ServerDto.Port; this.TxtTenant.StringValue = ServerDto.Tenant; saml = ServerDto.TokenType == TokenType.SAML; var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken (ServerDto.ServerName); if (auth != null && auth.Login != null) { TxtUsername.StringValue = auth.Login.User; TxtDomain.StringValue = auth.Login.DomainName; this.TxtTenant.StringValue = auth.Login.DomainName; } } this.CbSaml.StringValue = saml ? "1" : "0"; PnlJwt.Hidden = saml; PnlSaml.Hidden = !saml; TxtStsUrl.Hidden = !saml; LblStsUrl.Hidden = !saml; SetUrl (this,EventArgs.Empty); }
public override void AwakeFromNib () { base.AwakeFromNib (); SolutionUserDto = SolutionUserDtoOriginal.DeepCopy(); TxtName.StringValue = SolutionUserDto.Name; TxtDescription.StringValue = string.IsNullOrEmpty(SolutionUserDto.Description)?string.Empty:SolutionUserDto.Description; cbDisabled.StringValue = SolutionUserDto.Disabled ? "0" : "1"; _certificate = new X509Certificate2 (Encoding.ASCII.GetBytes(SolutionUserDto.Certificate.Encoded)); ActionHelper.Execute (delegate() { TxtIssuer.StringValue = _certificate.Issuer; TxtValidFrom.StringValue = _certificate.NotBefore.ToShortDateString (); TxtValidTo.StringValue = _certificate.NotAfter.ToShortDateString (); TxtDn.StringValue = _certificate.IssuerName.Format (true); }); //Events this.BtnSave.Activated += OnClickSaveButton; this.BtnChangeCertificate.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); var cert1 = new X509Certificate2 (); ActionHelper.Execute (delegate() { cert1.Import (filePath); TxtIssuer.StringValue = cert1.Issuer; TxtValidFrom.StringValue = cert1.NotBefore.ToShortDateString(); TxtValidTo.StringValue = cert1.NotAfter.ToShortDateString(); TxtDn.StringValue = cert1.IssuerName.Format(true); _certificate = cert1; }); SolutionUserDto.Certificate.Encoded = _certificate.ToPem(); } }; BtnViewCertificate.Activated += (object sender, EventArgs e) => { CertificateService.DisplayX509Certificate2(this, _certificate ); }; BtnSave.Hidden = !IsSystemDomain; }
public void OnClickBrowseButton (object sender, EventArgs e) { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); var cert = new X509Certificate2 (); try { cert.Import (filePath); } catch (Exception) { UIErrorHelper.ShowAlert ("Invalid X509 certificate", "Alert"); } TxtCertificate.StringValue = filePath; } }
public void OpenKeyFile (object sender, EventArgs eventargs) { NSOpenPanel openDlg = new NSOpenPanel (); openDlg.CanChooseFiles = true; openDlg.AllowedFileTypes = new string[]{ "pem", "key" }; nint result = openDlg.RunModal (); if (result == (int)1) { FilePath.StringValue = openDlg.Url.RelativePath; UIErrorHelper.ShowAlert (openDlg.Filename, "File"); } }
public override void AwakeFromNib () { base.AwakeFromNib (); _certificates = new List<CertificateDto> (); _currentStep = WizardSteps.One; SetWizardStep (); ReloadCertificates (); //Events this.BtnTestConnection.Activated += TestConnection; this.BtnNext.Activated += OnClickNextButton; this.BtnBack.Activated += OnClickBackButton; this.BtnAddCertificate.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); var cert = new X509Certificate2 (); ActionHelper.Execute (delegate() { cert.Import (filePath); var certfificateDto = new CertificateDto { Encoded = cert.ToPem(), Chain = cert.GetFormattedThumbPrint()}; _certificates.Add(certfificateDto); ReloadCertificates(); }); } }; this.RdoIdentitySource.Activated += (object sender, EventArgs e) => { SetSpnControls(); }; this.RdoDomainController.Activated += (object sender, EventArgs e) => { var anyDc = RdoDomainController.SelectedTag == 1; if(anyDc) { SetConnectionString(); } else { TxtLdapConnection.StringValue = (NSString) string.Empty; } ChkProtect.Enabled = anyDc; EnableDisableConnectionString(!anyDc); }; this.BtnRemoveCertificate.Activated += (object sender, EventArgs e) => { if (LstCertificates.SelectedRows.Count > 0) { foreach (var row in LstCertificates.SelectedRows) { _certificates.RemoveAt ((int)row); } ReloadCertificates(); } }; this.BtnPrimaryImport.Activated += (object sender, EventArgs e) => { }; this.BtnSecondaryImport.Activated += (object sender, EventArgs e) => { }; this.TxtDomainName.Changed += (object sender, EventArgs e) => { SetConnectionString(); }; this.ChkProtect.Activated += (object sender, EventArgs e) => { SetConnectionString(); }; this.RdoSpn.Activated += (object sender, EventArgs e) => { SetSpnControls(); }; BtnPrimaryImport.Enabled = false; BtnSecondaryImport.Enabled = false; this.TxtPrimaryUrl.Activated += (object sender, EventArgs e) => { BtnPrimaryImport.Enabled = this.TxtPrimaryUrl.StringValue!= null && this.TxtPrimaryUrl.StringValue.StartsWith("ldaps://"); }; this.TxtSecondaryConnection.Activated += (object sender, EventArgs e) => { BtnSecondaryImport.Enabled = this.TxtSecondaryConnection.StringValue!= null && this.TxtSecondaryConnection.StringValue.StartsWith("ldaps://"); }; BtnPrimaryImport.Activated += (object sender, EventArgs e) => { ImportCertificates(TxtPrimaryUrl.StringValue); }; BtnSecondaryImport.Activated += (object sender, EventArgs e) => { ImportCertificates(TxtSecondaryConnection.StringValue); }; if (IdentityProviderDto != null) DtoToView (); else IdentityProviderDto = new IdentityProviderDto (); this.BtnAdvanced.Activated += (object sender, EventArgs e) => { var form = new ExternalDomainAdvancedSettingsController () { IdentityProviderDto = new IdentityProviderDto { Schema = IdentityProviderDto.Schema == null ? new Dictionary<string, SchemaObjectMappingDto>() :new Dictionary<string, SchemaObjectMappingDto>(IdentityProviderDto.Schema), AttributesMap = IdentityProviderDto.AttributesMap == null ? new Dictionary<string, string>() : new Dictionary<string, string>(IdentityProviderDto.AttributesMap), BaseDnForNestedGroupsEnabled = IdentityProviderDto.BaseDnForNestedGroupsEnabled, MatchingRuleInChainEnabled = IdentityProviderDto.MatchingRuleInChainEnabled, DirectGroupsSearchEnabled = IdentityProviderDto.DirectGroupsSearchEnabled } }; var result = NSApplication.SharedApplication.RunModalForWindow (form.Window); if(result == 1) { IdentityProviderDto.Schema = GetSchema(form.IdentityProviderDto.Schema); IdentityProviderDto.AttributesMap = new Dictionary<string, string>(form.IdentityProviderDto.AttributesMap); IdentityProviderDto.BaseDnForNestedGroupsEnabled = form.IdentityProviderDto.BaseDnForNestedGroupsEnabled; IdentityProviderDto.MatchingRuleInChainEnabled = form.IdentityProviderDto.MatchingRuleInChainEnabled; IdentityProviderDto.DirectGroupsSearchEnabled = form.IdentityProviderDto.DirectGroupsSearchEnabled; } }; SetSpnControls (); }
public override void AwakeFromNib () { base.AwakeFromNib (); DtoToView (); this.BtnAuthenticationAddCertificate.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); var cert = new X509Certificate2 (); ActionHelper.Execute (delegate() { cert.Import (filePath); var certfificateDto = new CertificateDto { Encoded = cert.ToPem(), }; TenantConfigurationDto.AuthenticationPolicy.ClientCertificatePolicy.TrustedCACertificates.Add(certfificateDto); ReloadCertificates(); }); } }; this.BtnAuthenticationRemoveCertificate.Activated += (object sender, EventArgs e) => { if (CertificateTableView.SelectedRows.Count > 0) { foreach (var row in CertificateTableView.SelectedRows) { TenantConfigurationDto.AuthenticationPolicy.ClientCertificatePolicy.TrustedCACertificates.RemoveAt ((int)row); } ReloadCertificates(); } }; BtnAuthenticationPolicyAddPolicyOid.Activated += (object sender, EventArgs e) => { if(string.IsNullOrEmpty(TxtAuthenticationPolicyOid.StringValue)) { UIErrorHelper.ShowAlert ("Policy OID cannot be empty", "Alert"); return; } TenantConfigurationDto.AuthenticationPolicy.ClientCertificatePolicy.CertPolicyOIDs.Add(TxtAuthenticationPolicyOid.StringValue); ReloadTableView(AuthenticationPolicyOidTableView, TenantConfigurationDto.AuthenticationPolicy.ClientCertificatePolicy.CertPolicyOIDs); TxtAuthenticationPolicyOid.StringValue = (NSString)string.Empty; BtnAuthenticationRemovePolicyOid.Enabled = TenantConfigurationDto.AuthenticationPolicy.ClientCertificatePolicy.CertPolicyOIDs != null && TenantConfigurationDto.AuthenticationPolicy.ClientCertificatePolicy.CertPolicyOIDs.Count > 0; }; BtnAuthenticationRemovePolicyOid.Activated += (object sender, EventArgs e) => { if (AuthenticationPolicyOidTableView.SelectedRows.Count > 0) { foreach (var row in AuthenticationPolicyOidTableView.SelectedRows) { TenantConfigurationDto.AuthenticationPolicy.ClientCertificatePolicy.CertPolicyOIDs.RemoveAt((int)row); } ReloadTableView(AuthenticationPolicyOidTableView, TenantConfigurationDto.AuthenticationPolicy.ClientCertificatePolicy.CertPolicyOIDs); BtnAuthenticationRemovePolicyOid.Enabled = TenantConfigurationDto.AuthenticationPolicy.ClientCertificatePolicy.CertPolicyOIDs != null && TenantConfigurationDto.AuthenticationPolicy.ClientCertificatePolicy.CertPolicyOIDs.Count > 0; } }; BtnClose.Activated += (object sender, EventArgs e) => { TenantConfigurationDto = null; this.Close (); NSApplication.SharedApplication.StopModalWithCode (0); }; this.BtnSave.Activated += (object sender, EventArgs e) => { ActionHelper.Execute (delegate() { ViewToDto(); var auth = SnapInContext.Instance.AuthTokenManager.GetAuthToken(ServerDto.ServerName); SnapInContext.Instance.ServiceGateway.Tenant.UpdateConfig(ServerDto,TenantName,TenantConfigurationDto,auth.Token); this.Close (); NSApplication.SharedApplication.StopModalWithCode (1); }); }; this.ChkDisableLogonBanner.Activated += (object sender, EventArgs e) => { CheckLogonBanner(); }; this.BtnUploadContent.Activated += (object sender, EventArgs e) => { var openPanel = new NSOpenPanel(); openPanel.ReleasedWhenClosed = true; openPanel.Prompt = "Select file"; var result = openPanel.RunModal(); if (result == 1) { var filePath = openPanel.Url.AbsoluteString.Replace("file://",string.Empty); ActionHelper.Execute (delegate() { var text = System.IO.File.ReadAllText(filePath); if(!string.IsNullOrEmpty(text)) TxtBrandLogonBanner.StringValue = text; }); } }; CheckLogonBanner (); }