企業內部使用Silverlight5瀏覽器內受信任的應用程序


silverlight 5的一個有趣的新特性是:可以在瀏覽器內完全受信任運行。這對於企業內部應用可謂重大的改進,可以訪問本地COM,而且是在瀏覽器內。至少可以訪問本地文件系統這一點就方便很多,很多需要C/S結構才能完成的事借助SL5也能實現。我一直認為SL是開發企業應用的利器,JS+HTML方式的前端難與之相比。

1、silverlight應用程序項目屬性中以下選項搭鈎:

如果你在調試時運行會發現,有權限在本地創建文件,這是因為你用"localhost"訪問的原因,不要以為大功告成了!

2、修改注冊表:

  • Key path for 32-bit computers: HKEY_LOCAL_MACHINE\Software\Microsoft\Silverlight\

  • Key path for 64-bit computers: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Silverlight\

  • Value name: AllowElevatedTrustAppsInBrowser

  • Value type: DWORD

  • Valid Values:

    • Disabled - 0x00000000

    • Enabled - 0x00000001

  如何修改好像有問題:公司100台電腦難道要逐個修改?借助域策略吧。

3、簽名你的XAP文件:通過你的域管理員發布的證書為XAP簽名,或者創建一個測試證書用於測試

然后點擊“更多詳細信息”

安裝證書

存儲到“受信任的發布者”或者“受信任的根證書頒發機構”

證書上沒有紅叉,說明安裝成功。相信企業內部都有內部使用的證書(如果使用https登陸的話,肯定已經有了,直接用它簽名就是了),也就不需要每個機器安裝了。使用計算機名或者IP地址進行測試:

OK了!

測試代碼:

private void WriteFileButton_Click(object sender, RoutedEventArgs e)
{
// check if we can actually do this
if (!Application.Current.HasElevatedPermissions)
{
MessageBox.Show("Application requires elevated trust for this!");
return;
}

// create a directory if necessary
var tempDirectory = @"c:\temp";
if (!Directory.Exists(tempDirectory))
{
Directory.CreateDirectory(tempDirectory);
}

// build the full filename
var filename = string.Format("tempFile-{0}.txt", _rnd.Next(0, 65536));
var fullPath = Path.Combine(tempDirectory, filename);

// write a new file
using (FileStream fs = File.Create(fullPath))
using (StreamWriter sr = new StreamWriter(fs, Encoding.UTF8))
{
sr.WriteLine("Hallo from a trusted app!");
}

// Notify the user
MessageBox.Show("File has been created.");
}


如果是面向Internet的應用,可能需要制作安裝程序,然后在初次安裝時,做好注冊表相關的設置工作了。

英文原文:http://www.pitorque.de/MisterGoodcat/post/Silverlight-5-Tidbits-Trusted-applications.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM