WPF發布程式後未授予信任的解決辦法
基於瀏覽器的WPF應用程式由於需要比較高的操作許可權,所以在項目的安全性屬性中選擇了“這是完全可信的應用程式”選項。可是,在發布部署後,在其他電腦上開啟xbap檔案的時候,提示“未授予信任無法部署該應用,因為它不受信任並且可能不安全。”的錯誤。開啟log檔案發現在下載程式時候觸發了TrustNotGrantedException異常。
解決辦法:
大步驟分為3步:製作特定網域名稱訪問的認證;使用該認證為程式集簽名;把該認證匯入到用戶端的Cert Manager中。
詳細步驟如下:
1、產生用於192.168.0.130這個網域名稱訪問的,密碼編譯演算法是2048位的,並指定儲存位置的證明書:
makecert -r -n "CN=192.168.0.130" -b 01/01/2012 -e 01/01/2030 -a sha1 -len 2048 -ss CA -sr localmachine -sv WpfBrowserApp_Key.pvk WpfBrowserApp_Key.cer
按提示設定私密金鑰密碼(也可以不使用密碼)即可在目前的目錄產生相關檔案
2、利用X.509認證(.cer)建立發行者認證 (.spc),用到cert2spc工具,命令如下:
cert2spc WpfBrowserApp_Key.cer WpfBrowserApp_Key.spc
3、從.pvk和.spc格式轉換成.pfx格式,用到pvkimprt工具,命令如下:
pvkimprt -pfx WpfBrowserApp_Key.spc WpfBrowserApp_Key.pvk
按提示操作可匯出.pfx認證,若第1步設定了私密金鑰密碼,此處需要輸入驗證
4、在vs項目的ClickOnce清單簽名的認證設定處點擊“從檔案選擇”瀏覽定位到第3步匯出的.pfx認證,此處需要驗證第3步中設定的認證私密金鑰密碼。
5、使用認證為程式集簽名。如。
6、在用戶端電腦上匯入該認證到“受信任的根憑證發布機構”、“受信任的發行者”、“受信任人”和“個人”中。
運行——mmc——添加刪除嵌入式管理單元——添加——認證——賬戶選擇為“本機電腦”,然後再分別匯入認證到不同的目錄下。