private static void SaveConfig()
        {
            string path = Path.Combine(ConfigurationManager.AppSettings["IDPDataDirectory"], _configFileName);

            FileConfig conf = new FileConfig();
            conf.BaseUrl = ServerBaseUrl;
            if(IDPCertificate != null)
            {
                conf.certThumbPrint = IDPCertificate.Thumbprint;
                conf.certLocation = _storeLocation.ToString();
                conf.certStore = _storeName.ToString();
            }
            FileStream fs = File.OpenWrite(path);

            BinaryFormatter bf = new BinaryFormatter();

            bf.Serialize(fs, conf);

            fs.Close();
        }
        private static void LoadCertificate(FileConfig conf)
        {
            if(!string.IsNullOrEmpty(conf.certThumbPrint))
            {
                _storeLocation = (StoreLocation) Enum.Parse(typeof (StoreLocation), conf.certLocation);
                _storeName = (StoreName)Enum.Parse(typeof(StoreName), conf.certStore);

                X509Store store = new X509Store(_storeName, _storeLocation);

                store.Open(OpenFlags.ReadOnly);

                X509Certificate2Collection coll = store.Certificates.Find(X509FindType.FindByThumbprint, conf.certThumbPrint, true);
                if(coll.Count == 1)
                {
                    _idpCertificate = coll[0];
                }
            }
        }