Microsoft MVP성태의 닷넷 이야기
Win32 : 3. 사용자 개입없이 인증서 설치하는 코드 [링크 복사], [링크+제목 복사]
조회: 8084
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

How to import a certificate without user interaction (C++ & C#)
; http://blogs.msdn.com/alejacma/archive/2008/01/31/how-to-import-a-certificate-without-user-interaction-c-c.aspx

C++ 과 C# 코드로 소개되어 있습니다.

<pre>
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
 
namespace ImportCertNet
{
    class Program
    {
        public struct CRYPTUI_WIZ_IMPORT_SRC_INFO
        {
            public Int32 dwSize;
            public Int32 dwSubjectChoice;
            [MarshalAs(UnmanagedType.LPWStr)]public String pwszFileName;
            public Int32 dwFlags;
            [MarshalAs(UnmanagedType.LPWStr)]public String pwszPassword;
        }
 
        [DllImport("CryptUI.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern Boolean CryptUIWizImport(
            Int32 dwFlags,
            IntPtr hwndParent,
            IntPtr pwszWizardTitle,
            ref CRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc,
            IntPtr hDestCertStore
        );
 
        public const Int32 CRYPTUI_WIZ_IMPORT_SUBJECT_FILE = 1;
        public const Int32 CRYPT_EXPORTABLE = 0x00000001;
        public const Int32 CRYPT_USER_PROTECTED = 0x00000002;
        public const Int32 CRYPTUI_WIZ_NO_UI = 0x0001;
 
        static void Main(string[] args)
        {
              CRYPTUI_WIZ_IMPORT_SRC_INFO importSrc = new CRYPTUI_WIZ_IMPORT_SRC_INFO();
              importSrc.dwSize = Marshal.SizeOf(importSrc);
              importSrc.dwSubjectChoice = CRYPTUI_WIZ_IMPORT_SUBJECT_FILE;
              importSrc.pwszFileName = "C:\\alex.pfx";
              importSrc.pwszPassword = "password";
              importSrc.dwFlags = CRYPT_EXPORTABLE | CRYPT_USER_PROTECTED;
 
              if (!CryptUIWizImport(
                CRYPTUI_WIZ_NO_UI,
                    IntPtr.Zero,
                    IntPtr.Zero,
                    ref importSrc,
                    IntPtr.Zero
              ))
              {
                    Console.WriteLine("CryptUIWizImport error " + Marshal.GetLastWin32Error());
              }
 
              Console.WriteLine("<< Press any key to continue >>");
              Console.ReadKey();
        }
    }
}
&lt;/pre>








[최초 등록일: ]
[최종 수정일: 2/1/2008]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

비밀번호

댓글 작성자
 



2008-02-20 05시05분
kevin25
2009-01-29 12시24분
kevin25

[1]  2  3  4  5  6  7  8 
NoWriterDateCnt.TitleFile(s)
197정성태7/30/20211481.NET : 63. Spectre.Console
196정성태10/28/20193154장치 관리자처럼 각 장치들에 할당된 리소스(예: Memory Range) 상태를 코드로 알아내는 방법
195정성태4/25/20192962Extracting Text from an Image Using Tesseract in C#
194정성태4/25/20192715Parse the Command Line with System.CommandLine
193정성태8/2/20175604.NET : 62. github - C# to JavaScript, WPF to JavaScript and Samples
192정성태6/29/20165145.NET : 61. TreeLib: Balanced Binary Trees ? Rank Augmented, for .NET
191정성태10/13/20156349.NET : 60. MICROSOFT TRANSLATOR HUB
190정성태6/20/20157063Win32 : 6. UMDH Visualizer - Memory profile viewer
189정성태1/19/20148676.NET : 59. QR 코드를 ASP.NET과 WPF에서 사용하는 방법
188정성태1/15/20148874.NET : 58. 윈도우폰 7 - 안면인식, Cartooning...
187정성태1/14/20148815.NET : 57. BCL에서 제공되는 컬렉션에 만족하지 못한다면? [1]
186정성태6/26/20138757.NET : 56. The managed way to retrieve text under the cursor (mouse pointer)
185정성태9/27/20129628.NET : 55. Face Detection with Emgu CV in C# and WPF
184정성태9/23/20128464.NET : 54. What was that sound Visual Studio? Audio Editor Beta For VS 2012 (plus free sounds library too!)
183정성태4/19/201210227.NET : 53. Virtual Router 소스 코드 및 실행 파일 (C#)
182정성태4/16/201210804.NET : 52. SharpDX [1]
181정성태3/3/201214123.NET : 51. .NET에서 DirectX를 이용하여 스크린 캡쳐를 빠르게 하는 방법 [3]
180정성태3/3/20129302.NET : 50. Restart Manager 를 이용하여 .NET 에서 잠긴 파일을 소유하고 있는 프로세스 찾는 방법
179정성태1/14/20128627.NET : 49. WebAPI Developer Preview 6: Self Hosted Mode Example
178정성태10/31/201110703.NET : 48. app.config의 supportedRuntime 예시
177정성태10/15/20119604.NET : 47. Irony - Language Implementation Kit
176정성태7/22/20119528.NET : 46. Manual Validation with Data Annotations
175정성태5/18/201111270Win32 : 5. UuidCreateSequential
174정성태5/4/20119745.NET : 45. NTrace v2 now available (think Managed VS2010/.Net 4 Event Tracing for Windows)
173정성태4/12/201111172레지스트리 : 11. BHO를 IE와 탐색기에서 선택적으로 로드하고 싶다면?
[1]  2  3  4  5  6  7  8