Illustrates client configuration to support mutual authentication, as well as other APIs related to certificate handling:
//Step 1: Get the login certificate from a certificate store
CertificateStore myStore = CertificateStore.GetDefault();
StringList labels = myStore.CertificateLabels();
string aLabel = labels.Item(0);
String filter1 = "Test";
labels = myStore.CertificateLabels(filter1, null);
LoginCertificate lc = myStore.GetSignedCertificate(aLabel, "changeit");
//Step 2: Register the application
Application.GetInstance().ApplicationIdentifier = "customer.service";
DsTestDB.SetApplication(Application.GetInstance());
ConnectionProperties pro = Application.GetInstance().ConnectionProperties;
pro.LoginCertificate = lc;
pro.ServerName = "bfang-desktop";
pro.PortNumber = 8002;
pro.NetworkProtocol = "HTTPS";
pro.FarmId = "0";
pro.UrlSuffix = "";
pro.SecurityConfiguration = "cert";
if (Application.GetInstance().RegistrationStatus == RegistrationStatus.UNREGISTERED)
{
Application.GetInstance().RegisterApplication(100);
}
.......
//Step 3: Get ready to synchronize
DsTestDB.GetSynchronizationProfile().NetworkProtocol = "HTTPS";
DsTestDB.GetSynchronizationProfile().PortNumber = 2482;
DsTestDB.GetSynchronizationProfile().ServerName = "bfang-desktop";
DsTestDB.GetSynchronizationProfile().Certificate = lc;
DsTestDB.getSynchronizationProfile().NetworkStreamParams = "trusted_certificate=serverCA.crt";
//Step 4: Synchronize
.......
DsTestDB.Synchronize();
.......