Microsoft MVP성태의 닷넷 이야기
Win32 : 3. 사용자 개입없이 인증서 설치하는 코드 [링크 복사], [링크+제목 복사]
조회: 8115
글쓴 사람
정성태 (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)
43정성태7/17/20035761탐색기 Namespace Extension 컨테이너 (VC 6.0, ATL) 2002.03.24파일 다운로드1
42정성태7/17/20034286KBManager WebBand (VC 6.0, ATL/Script) 2001.10.01파일 다운로드1
41정성태7/17/20034357UrlMonDownload (VC 6.0, ATL) 2001.06.16파일 다운로드1
40정성태7/17/20034304IE 북마크 임포트 (VC 6.0, ATL, MFC 지원) 2001.01.20파일 다운로드1
39정성태7/17/20034875MsIE.exe (VC 6.0, ATL, HTML Parser 로서의 IHTMLDocument2 이용 및 IE 보안설정) 2000.11.23파일 다운로드1
38정성태7/17/20034590EnumIE.exe (VC 6.0, ATL, 현재 사용 중인 IE에 접속) 2000.10.24파일 다운로드1
37정성태7/17/20034330ReuseIE.exe (VC ++ 6,0, Internet Explorer 재사용) 2000.04.17파일 다운로드1
36정성태7/17/20033930RemoteViewer dll (VC ++ 6.0, ATL) 2000.03.13파일 다운로드1
35정성태7/17/20034236IESpy dll (VC ++ 6.0, ATL) 2000.02.28파일 다운로드1
34정성태7/17/20033972Bmp2Gif 콘트롤 (VC ++ 6.0, MFC) 2000.02.28파일 다운로드1
33정성태7/17/20033788Gif89a 콘트롤 (VC ++ 6.0, ATL) 2000.02.28파일 다운로드1
32정성태7/17/20034294이미지 4버튼 (VC ++ 6.0, ATL) 2000.02.28파일 다운로드1
31정성태7/17/20033916이미지 홀더 (VC ++ 6.0, ATL) 2000.02.28파일 다운로드1
30정성태7/17/20034044이미지 뷰어 (VC ++ 6.0, ATL) 2000.02.28파일 다운로드1
29정성태7/17/20033825ChatClient (VC ++ 6.0, MFC) 1999.09.09파일 다운로드1
28정성태7/17/20035221Winsock2 SPI : LSP 예제 (VC ++ 6.0) 2001.08.07파일 다운로드1
27정성태7/17/20034329Echo Services Server (VC ++ 6.0, ATL Service) 2001.01.07파일 다운로드1
26정성태7/17/20037355FTP Client (VC ++ 6.0, MFC) 1999.09.14파일 다운로드1
25정성태7/17/20033726모뎀 정보를 알아내는 클래스 (VC ++ 6.0, MFC) 1999.09.12파일 다운로드1
24정성태7/17/20038453Ping (VC ++ 6.0, MFC, CSocket Class) 1999.09.09 [1]파일 다운로드1
23정성태7/21/20037417ChatServer / ChatClient (VC ++ 6.0, MFC, Win32 API Socket) 1999.08.01파일 다운로드2
22정성태7/17/20033885성능 객체 카운터 (VC 6.0, Win32) 2001.07.07파일 다운로드1
21정성태7/17/20033910StringSplit 클래스 (VC++6.0, Win32) 2000.02.28파일 다운로드1
20정성태7/17/20034179SQLDirect 클래스 (VC++6.0, Win32) 2000.02.28파일 다운로드1
19정성태7/17/20033579ImeControl 클래스 (VC++6.0, Win32) 2000.02.28파일 다운로드1
18정성태7/17/20034011RegistryEx 클래스 (VC++6.0, Win32) 2000.02.28파일 다운로드1
1  2  3  4  5  6  [7]  8