Esempio n. 1
0
        public void ConfigureCertificateStoreProvider()
        {
            ICertificateOptions       options         = Environment.Host.ApplicationBuilder.ApplicationServices.GetRequiredService <ICertificateOptions>();
            ICertificateStoreProvider storeProvider   = Environment.Host.ApplicationBuilder.ApplicationServices.GetRequiredService <ICertificateStoreProvider>();
            IWebServerVersion         versionProvider = Environment.Host.ApplicationBuilder.ApplicationServices.GetService <IWebServerVersion>();

            const string webHosting = "WebHosting";
            const string my         = "My";

            //
            // My
            if (!storeProvider.Stores.Any(s => s.Name.Equals(my, System.StringComparison.OrdinalIgnoreCase)) && WindowsCertificateStore.Exists(my))
            {
                storeProvider.AddStore(new WindowsCertificateStore(my, new string[] { "read" }));
            }

            if (versionProvider?.Version != null && versionProvider.Version >= new System.Version(8, 0))
            {
                //
                // WebHosting Certificate Store was not introduced until IIS 8.0
                if (!storeProvider.Stores.Any(s => s.Name.Equals(webHosting, System.StringComparison.OrdinalIgnoreCase)) && WindowsCertificateStore.Exists(webHosting))
                {
                    storeProvider.AddStore(new WindowsCertificateStore(webHosting, new string[] { "read" }));
                }
            }
        }