For once and for all i am going to write this down so that i can find the snippet back when I need it.....
/// <summary>
/// Creeert een nieuw AmiceBedrijfsNummerService proxy object
/// </summary>
/// <returns>AmiceBedrijfsNummerService object</returns>
private AmiceBedrijfsNummerService CreateBNSObject()
{
AmiceBedrijfsNummerService lv_BNS = null;
try
{
// We need settings to init the new object
if (m_settings == null)
{
m_strErrorMessage = "Settings object not specified!";
throw (new AmiceException(m_strErrorMessage));
}
// Create AMICE object
lv_BNS = new AmiceBedrijfsNummerService();
lv_BNS.Url = m_settings.URL;
lv_BNS.Credentials = new System.Net.NetworkCredential(m_settings.Username, m_settings.Password);
// Create proxy
if (m_settings.IsProxyUsed)
{
System.Net.IWebProxy lv_Proxy = new System.Net.WebProxy(m_settings.ProxyAddress, m_settings.ProxyPort);
lv_Proxy.Credentials = new System.Net.NetworkCredential(m_settings.ProxyUsername, m_settings.ProxyPassword, m_settings.ProxyDomain);
lv_BNS.Proxy = lv_Proxy;
}
// Add client certificate
if (m_settings.IsCertUsed)
{
X509Certificate cert = null;
byte[] strDER;
switch (m_settings.CertType)
{
case "Base64Header":
strDER = Base64Header_to_DER(m_settings.CertPath);
cert = new X509Certificate(strDER);
break;
case "Base64":
strDER = Base64_to_DER(m_settings.CertPath);
cert = new X509Certificate(strDER);
break;
case "DER":
cert = X509Certificate.CreateFromCertFile(m_settings.CertPath);
break;
default:
m_strErrorMessage = "Unknown certificate type specified!!";
lv_BNS = null;
throw (new AmiceException(m_strErrorMessage));
}
if (cert!=null)
{
// Add the certificate to the BNS object
lv_BNS.ClientCertificates.Add(cert);
}
else
{
m_strErrorMessage = "Certificate object not created!!";
lv_BNS = null;
throw (new AmiceException(m_strErrorMessage));
}
}
return lv_BNS;
}
catch (AmiceException exc)
{
m_strErrorMessage = "CreateBNSObject -> " + m_strErrorMessage;
lv_BNS = null;
throw (new AmiceException(m_strErrorMessage, exc));
}
catch (Exception exc)
{
m_strErrorMessage = "CreateBNSObject -> Ongespecificeerde fout!";
lv_BNS = null;
throw (new AmiceException(m_strErrorMessage, exc));
}
}
So, there you have it....