Microsoft MVP성태의 닷넷 이야기
Win32 : 3. 사용자 개입없이 인증서 설치하는 코드 [링크 복사], [링크+제목 복사]
조회: 6613
글쓴 사람
정성태 (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>




donaricano-btn



[최초 등록일: ]
[최종 수정일: 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)
144정성태3/27/20086254.NET : 29. WPF 응용 프로그램 - 웹캠으로 입력되는 스트림을 WMV 로 출력
143정성태3/27/20086537레지스트리 : 8. VHD 파일을 하드 디스크로 인식
142정성태3/26/20085989레지스트리 : 7. 아웃룩 2007 의 제한된 첨부 파일을 허용하도록 설정
141정성태3/25/20085796레지스트리 : 6. 웹 브라우저(IE 8) 컨트롤 렌더링 모드 지정
140정성태2/23/20085208.NET : 28. 프로세스를 실행시켜주는 간단한 NT 서비스 제작 [1]
139정성태2/21/20084473.NET : 27. P/Invoke 를 이용한 메시지 서명 및 확인
138정성태2/21/20085955SMTP Commands
137정성태2/18/20084626.NET 3.5 : 5. LINQ to XML : Creating XML from another XML
136정성태2/1/20086613Win32 : 3. 사용자 개입없이 인증서 설치하는 코드 [2]
135정성태1/30/20084268COM : 5. Starting a Hyper-V Virtual Machine [3]
134정성태1/28/20084501Win32 : 2. How to generate key pairs, encrypt and decrypt data with CryptoAPI
133정성태1/15/20084509유틸리티 : 1. Writing Debugger extension program in C#
132정성태1/15/20084774VS.NET Addin - DB 연결 개체 추가
131정성태1/10/20084609기타 : 1. Maze Generator in C#
130정성태1/7/20084717VS.NET Addin - 프로젝트 닫기
129정성태1/2/20084479웹폼 코딩 규약 : 2. 서버측 ViewState 저장소
128정성태12/30/20074008레지스트리 : 5. List of registry keys affecting IIS7 behavior
127정성태12/20/20074700.NET : 26. CreateProcessWithLogonW / CreateProcessAsUser API 사용
126정성태12/19/20073763Win32 : 1. SLDF_RUNAS_USER
125정성태12/13/20074059.NET : 25. InfoPath 사용자 컨트롤
124정성태11/24/20073741SQL : 2. SQL Server 2008 에서 소개하는 spatial 데이터 타입
123정성태11/19/200710400.NET : 24. C# WebCam 사용자 컨트롤
122정성태11/16/20074848COM : 4. 외부 SMTP 를 지정하여 메일 보내기
121정성태9/14/20073500.NET 3.5 : 4. Entity Framework 관련 링크 모음
120정성태9/14/20073200Vista : 7. Gadget Samples for Windows Sidebar
119정성태8/23/20073610.NET 3.5 : 3. WCF 서비스에서 HTTP 헤더 설정
1  2  [3]  4  5  6  7  8