コード例 #1
0
        void ReleaseDesignerOutlets()
        {
            if (CbAuthTokenMethod != null)
            {
                CbAuthTokenMethod.Dispose();
                CbAuthTokenMethod = null;
            }

            if (BtnAddPostLogoutRedirectUri != null)
            {
                BtnAddPostLogoutRedirectUri.Dispose();
                BtnAddPostLogoutRedirectUri = null;
            }

            if (BtnAddRedirectUri != null)
            {
                BtnAddRedirectUri.Dispose();
                BtnAddRedirectUri = null;
            }

            if (BtnClose != null)
            {
                BtnClose.Dispose();
                BtnClose = null;
            }

            if (BtnRemovePostLogoutRedirectUri != null)
            {
                BtnRemovePostLogoutRedirectUri.Dispose();
                BtnRemovePostLogoutRedirectUri = null;
            }

            if (BtnRemoveRedirectUri != null)
            {
                BtnRemoveRedirectUri.Dispose();
                BtnRemoveRedirectUri = null;
            }

            if (BtnSave != null)
            {
                BtnSave.Dispose();
                BtnSave = null;
            }

            if (BtnSelectCertificate != null)
            {
                BtnSelectCertificate.Dispose();
                BtnSelectCertificate = null;
            }

            if (PostLogoutUtiTableView != null)
            {
                PostLogoutUtiTableView.Dispose();
                PostLogoutUtiTableView = null;
            }

            if (RedirectUriTableView != null)
            {
                RedirectUriTableView.Dispose();
                RedirectUriTableView = null;
            }

            if (TxtCertificateDN != null)
            {
                TxtCertificateDN.Dispose();
                TxtCertificateDN = null;
            }

            if (TxtLogoutUri != null)
            {
                TxtLogoutUri.Dispose();
                TxtLogoutUri = null;
            }

            if (TxtPostLogoutRedirectUri != null)
            {
                TxtPostLogoutRedirectUri.Dispose();
                TxtPostLogoutRedirectUri = null;
            }

            if (TxtRedirectUri != null)
            {
                TxtRedirectUri.Dispose();
                TxtRedirectUri = null;
            }
        }
コード例 #2
0
        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) => {
                var value = (NSString)CbAuthTokenMethod.SelectedValue;
                if (value == "private_key_jwt" && 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);
        }