当前位置: 首页>>代码示例>>C#>>正文


C# X509Store.AddRange方法代码示例

本文整理汇总了C#中System.Security.Cryptography.X509Certificates.X509Store.AddRange方法的典型用法代码示例。如果您正苦于以下问题:C# X509Store.AddRange方法的具体用法?C# X509Store.AddRange怎么用?C# X509Store.AddRange使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Security.Cryptography.X509Certificates.X509Store的用法示例。


在下文中一共展示了X509Store.AddRange方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Main

        private static void Main(string[] args)
        {
            Task.Run(async () =>
            {
                Console.WriteLine("Enter PIN: ");
                string pin = Console.ReadLine();

                WebRequestHandler handler = new WebRequestHandler();
                handler.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);

                using (HttpClient client = new HttpClient(handler, true))
                {
                    client.BaseAddress = new Uri(string.Format(@"https://{0}:{1}", MachineName, RemotePort));

                    X509Store store = null;

                    try
                    {
                        var response = await client.GetAsync("certs/" + pin);
                        response.EnsureSuccessStatusCode();

                        byte[] rawCert = await response.Content.ReadAsByteArrayAsync();

                        X509Certificate2Collection certs = new X509Certificate2Collection();
                        certs.Import(rawCert, "", X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.UserKeySet);

                        store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
                        store.Open(OpenFlags.ReadWrite);

                        X509Certificate2Collection oldCerts = new X509Certificate2Collection();

                        foreach (var cert in certs)
                        {
                            oldCerts.AddRange(store.Certificates.Find(X509FindType.FindBySubjectDistinguishedName, cert.Subject, false));
                        }
                        store.RemoveRange(certs);
                        store.AddRange(certs);
                        store.Close();

                        Console.WriteLine("Success");
                    }
                    catch (HttpRequestException e)
                    {
                        Console.WriteLine("Error communicating with vcremote. Make sure that vcremote is running in secure mode and that a new client cert has been generated.");
                    }
                    finally
                    {
                        if (store != null)
                        {
                            store.Close();
                        }
                    }
                }
            }).Wait();
        }
开发者ID:lsgxeva,项目名称:MIEngine,代码行数:55,代码来源:CertTool.cs

示例2: Import

		/// <summary>
		/// Imports certificates and keys from a pkcs12-encoded stream.
		/// </summary>
		/// <remarks>
		/// Imports certificates and keys from a pkcs12-encoded stream.
		/// </remarks>
		/// <param name="stream">The raw certificate and key data.</param>
		/// <param name="password">The password to unlock the stream.</param>
		/// <exception cref="System.ArgumentNullException">
		/// <para><paramref name="stream"/> is <c>null</c>.</para>
		/// <para>-or-</para>
		/// <para><paramref name="password"/> is <c>null</c>.</para>
		/// </exception>
		/// <exception cref="System.NotSupportedException">
		/// Importing keys is not supported by this cryptography context.
		/// </exception>
		public override void Import (Stream stream, string password)
		{
			if (stream == null)
				throw new ArgumentNullException ("stream");

			if (password == null)
				throw new ArgumentNullException ("password");

			var rawData = ReadAllBytes (stream);
			var store = new X509Store (StoreName.My, StoreLocation);
			var certs = new X509Certificate2Collection ();

			store.Open (OpenFlags.ReadWrite);
			certs.Import (rawData, password, X509KeyStorageFlags.UserKeySet);
			store.AddRange (certs);
			store.Close ();
		}
开发者ID:ALange,项目名称:OutlookPrivacyPlugin,代码行数:33,代码来源:WindowsSecureMimeContext.cs

示例3: Import

        /// <summary>
        /// Imports certificates and keys from a pkcs12-encoded stream.
        /// </summary>
        /// <param name="stream">The raw certificate and key data.</param>
        /// <param name="password">The password to unlock the stream.</param>
        /// <exception cref="System.ArgumentNullException">
        /// <para><paramref name="stream"/> is <c>null</c>.</para>
        /// <para>-or-</para>
        /// <para><paramref name="password"/> is <c>null</c>.</para>
        /// </exception>
        /// <exception cref="System.NotSupportedException">
        /// Importing keys is not supported by this cryptography context.
        /// </exception>
        public override void Import(Stream stream, string password)
        {
            if (stream == null)
                throw new ArgumentNullException ("stream");

            if (password == null)
                throw new ArgumentNullException ("password");

            byte[] rawData;

            if (stream is MemoryBlockStream) {
                rawData = ((MemoryBlockStream) stream).ToArray ();
            } else if (stream is MemoryStream) {
                rawData = ((MemoryStream) stream).ToArray ();
            } else {
                using (var memory = new MemoryStream ()) {
                    stream.CopyTo (memory, 4096);
                    rawData = memory.ToArray ();
                }
            }
            var store = new X509Store (StoreName.My, StoreLocation);
            var certs = new X509Certificate2Collection ();

            store.Open (OpenFlags.ReadWrite);
            certs.Import (rawData, password, X509KeyStorageFlags.UserKeySet);
            store.AddRange (certs);
            store.Close ();
        }
开发者ID:vdaron,项目名称:MimeKit,代码行数:41,代码来源:WindowsSecureMimeContext.cs

示例4: StoreEntityCertificatesCore

        private void StoreEntityCertificatesCore(X509Certificate2Collection certs, StoreName storeName, StoreLocation storeLocation)
        {
            X509Store x509Store = null;

            x509Store = new X509Store(storeName, storeLocation);

            x509Store.Open(OpenFlags.ReadWrite | OpenFlags.MaxAllowed);

            x509Store.AddRange(certs);

            x509Store.Close();
        }
开发者ID:gtkrug,项目名称:gfipm-ws-ms.net,代码行数:12,代码来源:CertificatesMgrForm.cs

示例5: RemoveRange_Empty_Certificate

		public void RemoveRange_Empty_Certificate ()
		{
			X509Store xs = new X509Store ("ReadWriteStore");
			xs.Open (OpenFlags.ReadWrite);
			// note: impossible to add cert_empty, so we add something else
			// to be sure we'll follow the complete code path (loop) of removal
			xs.AddRange (coll);
			xs.RemoveRange (new X509Certificate2Collection (cert_empty));
		}
开发者ID:Profit0004,项目名称:mono,代码行数:9,代码来源:X509StoreTest.cs

示例6: RemoveRange_OpenReadOnly_Existing

		public void RemoveRange_OpenReadOnly_Existing ()
		{
			X509Store xs = new X509Store ("ReadWriteStore");
			xs.Open (OpenFlags.ReadWrite);
			xs.AddRange (coll);
			xs.Close ();
			xs.Open (OpenFlags.ReadOnly);
			xs.RemoveRange (coll);
		}
开发者ID:Profit0004,项目名称:mono,代码行数:9,代码来源:X509StoreTest.cs

示例7: AddRange_OpenReadOnly

		public void AddRange_OpenReadOnly ()
		{
			X509Store xs = new X509Store ("ReadOnlyStore");
			xs.Open (OpenFlags.ReadOnly);
			xs.AddRange (coll);
		}
开发者ID:Profit0004,项目名称:mono,代码行数:6,代码来源:X509StoreTest.cs

示例8: AddRange

		public void AddRange ()
		{
			X509Store xs = new X509Store ("ReadWriteStore");
			xs.Open (OpenFlags.ReadWrite);
			xs.AddRange (coll);
			Assert.AreEqual (coll.Count, xs.Certificates.Count, "Count");
		}
开发者ID:Profit0004,项目名称:mono,代码行数:7,代码来源:X509StoreTest.cs

示例9: AddRange_Empty_Certificate

		public void AddRange_Empty_Certificate ()
		{
			X509Store xs = new X509Store ("ReadWriteStore");
			xs.Open (OpenFlags.ReadWrite);
			xs.AddRange (new X509Certificate2Collection (cert_empty));
		}
开发者ID:Profit0004,项目名称:mono,代码行数:6,代码来源:X509StoreTest.cs

示例10: AddRange_Empty_ReadOnly

		public void AddRange_Empty_ReadOnly ()
		{
			X509Store xs = new X509Store ("ReadWriteStore");
			xs.Open (OpenFlags.ReadOnly);
			xs.AddRange (coll_empty);
			Assert.AreEqual (coll_empty.Count, xs.Certificates.Count, "Count");
		}
开发者ID:Profit0004,项目名称:mono,代码行数:7,代码来源:X509StoreTest.cs

示例11: AddRange_Empty_Closed

		public void AddRange_Empty_Closed ()
		{
			X509Store xs = new X509Store ("ReadWriteStore");
			xs.AddRange (coll_empty);
			Assert.AreEqual (coll_empty.Count, xs.Certificates.Count, "Count");
		}
开发者ID:Profit0004,项目名称:mono,代码行数:6,代码来源:X509StoreTest.cs


注:本文中的System.Security.Cryptography.X509Certificates.X509Store.AddRange方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。