コード例 #1
0
        protected override void BuildInternal(RoleDescriptor descriptor, RoleDescriptorConfiguration configuration)
        {
            if (configuration.KeyDescriptors == null)
            {
                throw new ArgumentNullException("keyDescriptors");
            }

            foreach (var key in configuration.KeyDescriptors)
            {
                var certConfiguration = new X509StoreCertificateConfiguration(key.CertificateContext);
                var certificate       = certConfiguration.GetX509Certificate2();

                var     keyDescriptor = new KeyDescriptor();
                KeyType keyType;
                if (!Enum.TryParse <KeyType>(key.Use.ToString(), out keyType))
                {
                    throw new InvalidCastException(String.Format("Parsing to type{0} failed. Value having been tried:{1}", typeof(KeyType), key.Use));
                }

                keyDescriptor.Use = keyType;

                keyDescriptor.KeyInfo = new SecurityKeyIdentifier(new X509RawDataKeyIdentifierClause(certificate));

                descriptor.Keys.Add(keyDescriptor);
            }
        }
コード例 #2
0
        public void X509CertStoreConfigurationTestTest_should_pass_subject_current_user_invalid_included()
        {
            //ARRANGE
            var certificateContext = new X509CertificateContext
            {
                StoreName     = "TestCertStore",
                ValidOnly     = false,
                StoreLocation = StoreLocation.CurrentUser
            };

            certificateContext.SearchCriteria.Add(new CertificateSearchCriteria {
                SearchValue = "ApiraTestCertificate", SearchCriteriaType = X509FindType.FindBySubjectName
            });
            var certConfiguration = new X509StoreCertificateConfiguration(certificateContext);
            //ACT
            X509Certificate2 cert = null;

            //ASSERT
            Assert.DoesNotThrow(() => cert = certConfiguration.GetX509Certificate2());
            Assert.NotNull(cert);
        }
コード例 #3
0
        public void X509CertStoreConfigurationTestTest_should_fail_subject_localMachine_valid_only()
        {
            //ARRANGE
            var certificateContext = new X509CertificateContext
            {
                StoreName = "TestCertStore",

                ValidOnly = true,

                StoreLocation = StoreLocation.LocalMachine
            };

            certificateContext.SearchCriteria.Add(new CertificateSearchCriteria {
                SearchValue = "ApiraTestCertificate", SearchCriteriaType = X509FindType.FindBySubjectName
            });
            var certConfiguration = new X509StoreCertificateConfiguration(certificateContext);
            //ACT
            X509Certificate2 cert = null;

            //ASSERT
            Assert.Throws <InvalidOperationException>(() => cert = certConfiguration.GetX509Certificate2());
        }