trang web của trường tôi có chứng chỉ selftrusted (bạn phải cài đặt thủ công) và tôi muốn tạo chương trình sẽ cài đặt chứng chỉ.cer (từ tài nguyên studio trực quan) cho người dùng cục bộ - "Chứng chỉ gốc đáng tin cậy thẩm quyền "sau khi tôi bấm vào một nút. Bạn có biết làm thế nào để mã nó trong Visual C#?Cách cài đặt chứng chỉ theo chương trình bằng cách sử dụng C#
Trả lời
Để thêm chứng chỉ vào kho gốc đáng tin cậy cho người dùng hiện tại theo chương trình, hãy sử dụng các lớp X509Store và X509Certificate2. Ví dụ:
string file; // Contains name of certificate file
X509Store store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite);
store.Add(new X509Certificate2(X509Certificate2.CreateFromCertFile(file)));
store.Close();
Xem thêm "How can I install a certificate into the local machine store programmatically using c#?".
Một lựa chọn khác là công cụ Certificate Manager command line (certmgr.exe), cụ thể:
certmgr /add cert.cer /s Root
nơi "cert.cer" là chứng chỉ của bạn. Điều này nhập nó vào cửa hàng gốc đáng tin cậy cho người dùng hiện tại. Tuy nhiên, certmgr.exe là một phần của Visual Studio và Windows SDK và có thể không được phân phối tự do.
Tôi có cần quyền truy cập quản trị cho tài khoản mà tôi chạy mã này không? –
@Johnny_D Bạn cần quyền truy cập của quản trị viên để sửa đổi các cửa hàng chứng chỉ hệ thống rộng, chẳng hạn như "Gốc". Bạn không cần quyền truy cập quản trị viên để sửa đổi các cửa hàng chứng chỉ cá nhân của mình, chẳng hạn như "My". – akton
Đó là một số loại vấn đề, vì tôi cần phải làm điều đó bên trong máy ảo Azure. Tôi có phải bằng cách nào đó tạo ra một người dùng quản trị và bối cảnh mạo danh nơi tôi thêm cetificate? –
Có, tôi biết cách thực hiện. Vì vậy, vấn đề bạn đang gặp phải trong việc tìm ra nó là gì và [bạn đã thử gì] (http://mattgemmell.com/2008/12/08/what-have-you-tried/)? –
Tôi đã thử với NativeWin32 và DllImport ("user32.dll") (SendKeys) nhưng tôi không thể tìm ra chính xác loại nào ở đó. – DroidBellmer