mFC開發ocx控件放到網上去

其實這裏網上能找到很多文件。

mfc開發activex控件本地好弄,但是放網上去能供別人訪問或者下載還是比較細的工作。這裏整理下

打包簽名:

cabarc  n  test.cab  test.inf  AnEdit.ocx                                  這樣就將其打包成test.cab

makecert /sv "test.pvk" /n "cn=test"  -$ "individual" -r test.cer

cert2spc test.cer test.spc

signcode.exe開始簽名。

這裏比較關鍵的其實是寫 test.inf 

[version]    
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
AnEdit.ocx=AnEdit.ocx
[AnEdit.ocx]
file-win32-x86=thiscab  
RegisterServer=yes     //是否註冊,不寫成yes下次還提醒。
clsid={134DC7AA-A178-4432-BF32-615C27D5CD35}   
DestDir=11
FileVersion=1,0,0,1

有可能有依賴庫,這個後面再說,現在這個沒依賴就這樣

clsid={134DC7AA-A178-4432-BF32-615C27D5CD35}    是MFC程序裏的類編號

//  CAnEditCtrl 的類信息


[ uuid(134DC7AA-A178-4432-BF32-615C27D5CD35),
 helpstring("AnEdit Control"), control ]
coclass AnEdit
{
[default] dispinterface _DAnEdit;
[default, source] dispinterface _DAnEditEvents;
};

好了inf文件就這樣了。

然後是web頁面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>nihao</title>
</head>
<p> 我的安全插件</p>
<object classid="clsid:134DC7AA-A178-4432-BF32-615C27D5CD35"id="test" CODEBASE="http://192.168.0.222/AnEdit/test.cab#version=1,0,0,1"
WIDTH=400 
HEIGHT=200 
ALIGN=center 
</object>
<body>
</body>
</html>


clsid:134DC7AA-A178-4432-BF32-615C27D5CD35跟上邊一樣的。  test.cab 就是剛剛上邊打的包。這裏不要寫AnEdit.ocx 

不然簽名什麼的就沒有意義了。

如果單是這樣髮網上也不行,因爲證書無效,一般視爲無效簽名。會提示無效簽名甚至不能安裝。。。

原因是證書沒有安裝。雙擊證書導入,存放區域選擇“受信任的根證書頒發機構”,點擊完成即可。

在客戶端測試:
1)        加入證書,瀏覽器-〉工具-〉Internet選項-〉內容-〉證書-〉受信任的頒發機構-〉導入證書。
2)        在有證書的情況下,如果服務器沒有加入“可信任網址”,提示下載的時候會顯示證書所籤內容,沒有證書則提示爲“未知”。
3)        如果服務器已加入“可信任網址”,並且已導入證書,則不提示任何信息,在用戶毫無感覺情況下下載。如果沒有加入“可信任網址“,控件可以正常下載但仍然不能正常使用,與是否簽名無關。



導入證書test.cer  ;OK ,這樣就可以了有效簽名直接下載使用!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章