[Silverlight]奇技银巧系列-3
Silverlight奇技銀巧系列:
所有該系列中的文章只為介紹一些Silverlight中或隱藏在Silverlight .NET framework鮮為人知的知識和技巧。這些文章并非教程,也是不是什么技術(shù)指導(dǎo),您只需對文章介紹的內(nèi)容保有印象。這些知識和技巧也許會在不經(jīng)意間綻放銀色光芒。
干web的朋友應(yīng)該都知道,幾年前有一段代碼相當(dāng)流行,其主要目的是:防止網(wǎng)頁被框架。想想也是,自己辛苦搞出來的網(wǎng)頁被人家隨意frame/iframe的確是不爽的。
而silverlight這種玩意,站外引用什么的就更容易了。所謂魔高一尺那啥高一丈,我們可以做點小動作來防止自己的silverlight application被人家引用。
代碼說起來就太簡單了,在App.xaml.cs的Application_Startup中加入:
if (!App.Current.Host.Settings.EnableHTMLAccess)throw new Exception("當(dāng)前應(yīng)用程序未允許與DOM通信");string htmlUrl = System.Windows.Browser.HtmlPage.Document.DocumentUri.ToString();if (!htmlUrl.Equals("http://foo.com/mypage.html"))throw new Exception("您無權(quán)使用該應(yīng)用程序");其中的http://foo.com/mypage.html就是你希望當(dāng)前silverlight應(yīng)用程序宿主的頁面地址。這樣結(jié)合防止frame就可以有效防止別人引用你的勞動成果啦。
最后看一下Settings中的屬性,
public sealed class Settings {public Settings();public bool EnableAutoZoom { get; set; }public bool EnableCacheVisualization { get; set; }public bool EnableFrameRateCounter { get; set; } public bool EnableGPUAcceleration { get; } public bool EnableHTMLAccess { get; }public bool EnableRedrawRegions { get; set; }public int MaxFrameRate { get; set; }public bool Windowless { get; }}他們分別對應(yīng)初始化silverlight(js控制)時的設(shè)置。如果我們要使用Host的相關(guān)屬性、控制DOM、與js通信,那么EnableHTMLAccess 必須為True。
總結(jié)
以上是生活随笔為你收集整理的[Silverlight]奇技银巧系列-3的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 直接用ISO文件在linux上安装新系统
- 下一篇: 如何制作U盘启动菜单