/// <summary> /// Submit request to a server then install the returned certificate /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void InstallCertifiate_Click(object sender, RoutedEventArgs e) { TextBlock outputTextBlock = rootPage.FindName("OutputTextBlock") as TextBlock; string response = ""; if (String.IsNullOrEmpty(certificateRequest)) { outputTextBlock.Text += "\nYou need to create a certificate request first"; return; } // To submit request, a valid url need to be provided. the url needs to point to a server which can take certificate request and issue certs // Add code here to initialize url string url = ""; if (String.IsNullOrEmpty(url)) { outputTextBlock.Text = "\nTo submit a request, please update the code provide a valid URL."; return; } try { outputTextBlock.Text = "Submitting request to server..."; response = await SubmitCertificateRequestAndGetResponse(certificateRequest, url); if (String.IsNullOrEmpty(response)) { outputTextBlock.Text += "\nSubmit request succeeded but the returned response is empty."; } outputTextBlock.Text += "\nResponse received, content: \n" + response; // install outputTextBlock.Text += "\nInstalling certificate ..."; await CertificateEnrollmentManager.InstallCertificateAsync(response, InstallOptions.None); outputTextBlock.Text += "\nThe certificate response is installed sucessfully.\n"; } catch (Exception ex) { outputTextBlock.Text += "\n\nCertificate Installation failed with error: " + ex.Message + "\n"; } }
/// <summary> /// Submit request to a server then install the returned certificate /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void RunSample_Click(object sender, RoutedEventArgs e) { TextBlock outputTextBlock = rootPage.FindName("OutputTextBlock") as TextBlock; TextBox urlTextBox = rootPage.FindName("UrlTextBox") as TextBox; CheckBox userStoreCheckBox = rootPage.FindName("UserStoreCheckBox") as CheckBox; string response = ""; string url = ""; outputTextBlock.Text = "Creating certificate request..."; // validate the URL as entered in "UrlTextBox" if (String.IsNullOrEmpty(urlTextBox.Text) || !System.Uri.IsWellFormedUriString(urlTextBox.Text.Trim(), UriKind.Absolute)) { outputTextBlock.Text = "a valid URL is not provided, so request will be created but will not be submitted."; } else { url = urlTextBox.Text.Trim(); } // create certificate request try { // call the default constructor of CertificateRequestProperties CertificateRequestProperties reqProp = new CertificateRequestProperties(); reqProp.Subject = "Toby"; reqProp.FriendlyName = "Toby's Cert"; if (true == userStoreCheckBox.IsChecked) { // have to use User's Certificate Store // call User Certificate Enrollment function createRequest to create a certificate request certificateRequest = await CertificateEnrollmentManager.UserCertificateEnrollmentManager.CreateRequestAsync(reqProp); outputTextBlock.Text += "\nRequest created, content:\n" + certificateRequest; } else { // use App's certificate store // call Certificate Enrollment function createRequest to create a certificate request certificateRequest = await CertificateEnrollmentManager.CreateRequestAsync(reqProp); outputTextBlock.Text += "\nRequest created, content:\n" + certificateRequest; } } catch (Exception ex) { outputTextBlock.Text += "\nCertificate request creation failed with error: " + ex.Message; } // make sure request was created successfully and there is a valid URL if (String.IsNullOrEmpty(certificateRequest) || string.IsNullOrEmpty(url)) { return; } // submit request for enrollment and install the certificate try { outputTextBlock.Text += "\n\nSubmitting request to server..."; response = await SubmitCertificateRequestAndGetResponse(certificateRequest, url); if (response.StartsWith("Error:", StringComparison.OrdinalIgnoreCase)) { // there was an error getting the response from server. Display the error outputTextBlock.Text += "\n" + response; } else { outputTextBlock.Text += "\nResponse received, content: \n" + response; // install certificate outputTextBlock.Text += "\nInstalling certificate ..."; if (true == userStoreCheckBox.IsChecked) { // install certificate to User's certificate store // call User Certificate Enrollment InstallCertificate function to install certificate await CertificateEnrollmentManager.UserCertificateEnrollmentManager.InstallCertificateAsync(response, InstallOptions.None); outputTextBlock.Text += "\nThe certificate response is installed successfully to User's certificate store.\n"; } else { // install certificate to App's certificate store // call Certificate Enrollment InstallCertificate function to install certificate await CertificateEnrollmentManager.InstallCertificateAsync(response, InstallOptions.None); outputTextBlock.Text += "\nThe certificate response is installed successfully to App's certificate store.\n"; } } } catch (Exception ex) { outputTextBlock.Text += "\nCertificate Installation failed with error: " + ex.Message + "\n"; } }