Dear Support Team,
Since version 25.1.35.0, we have noticed an issue where a pop-up window opens in the browser displaying a certificate selection. Although the server requests a client certificate, it is not strictly necessary. Therefore, we intercept the NeedClientCertificate event and handle various scenarios. We have a flag in our app that allows us to specify that a certificate is not strictly required. In that case, we proceed with e.ContinueWithoutCertificate();. If NeedClientCertificate is triggered and no matching certificate is installed on the computer, everything works as expected. We can proceed without a certificate. However, if a valid certificate is installed on the computer, the browser still opens the certificate selection dialog, even though we’ve already handled the situation in the handler with `e.ContinueWithoutCertificate();`. It seems that the browser acts independently if a suitable certificate is installed on the device.
Even if a certificate is required, we open our own pop-up window with a certificate selection. The browser's pop-up window should never open, since we handle it ourselves.
Here is an example Code, how we handle NeedClientCertificate:
Quote:if (!string.IsNullOrEmpty(this.activeConnection.Certificate))
{
Log.Instance.AsInfo("Browser Zertifikatanfrage", "Folgendes Zertifikat ist in der aktuellen Verbindung hinterlegt: " + this.activeConnection.Certificate);
List<X509Certificate2> certificates = Utils.GetInstalledCertificates();
foreach (X509Certificate2 mCert in certificates)
{
if (mCert.Issuer.Equals(this.activeConnection.Certificate))
{
e.Continue(mCert);
return;
}
}
string message = string.Format((string)Application.Current.FindResource("certsNotFound"), this.activeConnection.Name);
DialogHost.Show(new ErrorDialog(message));
e.ContinueWithoutCertificate();
}
else
{
Log.Instance.AsInfo("Browser Zertifikatanfrage", "Es ist kein Zertifikat in der aktuellen Verbindung hinterlegt");
if (this.activeConnection.CertRequired)
{
Log.Instance.AsInfo("Browser Zertifikatanfrage", "Auswahlpopup mit installierten Zertifikaten öffnen");
CertificateWindow cw = new CertificateWindow
{
Owner = this
};
cw.ShowDialog();
X509Certificate2 certificate = cw.SelectedCertificate;
if (certificate != null)
{
Log.Instance.AsInfo("Browser Zertifikatanfrage", certificate.FriendlyName + " wurde ausgewählt");
e.Continue(certificate);
}
else
{
Log.Instance.AsInfo("Browser Zertifikatanfrage", "Es wurde nichts ausgewählt .. Ohne Zertifikate fortfahren");
e.ContinueWithoutCertificate();
}
}
else
{
Log.Instance.AsInfo("Browser Zertifikatanfrage", "Es wird kein Benutzerzertifikat benötigt .. Ohne Zertifikate fortfahren");
e.ContinueWithoutCertificate();
}
}
In older versions this code worked fine. But since 25.1.35.0 the selection popup opens nevertheless.
How can we suppress the browser popup in this case? We want to fully handle this Event on ower own.
Thanks in advance!
Best regards!