[Silverlight]奇技银巧系列-3
生活随笔
收集整理的這篇文章主要介紹了
[Silverlight]奇技银巧系列-3
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Silverlight奇技銀巧系列:
所有該系列中的文章只為介紹一些Silverlight中或隱藏在Silverlight .NET framework鮮為人知的知識和技巧。這些文章并非教程,也是不是什么技術指導,您只需對文章介紹的內容保有印象。這些知識和技巧也許會在不經意間綻放銀色光芒。
干web的朋友應該都知道,幾年前有一段代碼相當流行,其主要目的是:防止網頁被框架。想想也是,自己辛苦搞出來的網頁被人家隨意frame/iframe的確是不爽的。
而silverlight這種玩意,站外引用什么的就更容易了。所謂魔高一尺那啥高一丈,我們可以做點小動作來防止自己的silverlight application被人家引用。
代碼說起來就太簡單了,在App.xaml.cs的Application_Startup中加入:
if (!App.Current.Host.Settings.EnableHTMLAccess)throw new Exception("當前應用程序未允許與DOM通信");string htmlUrl = System.Windows.Browser.HtmlPage.Document.DocumentUri.ToString();if (!htmlUrl.Equals("http://foo.com/mypage.html"))throw new Exception("您無權使用該應用程序");其中的http://foo.com/mypage.html就是你希望當前silverlight應用程序宿主的頁面地址。這樣結合防止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; }}他們分別對應初始化silverlight(js控制)時的設置。如果我們要使用Host的相關屬性、控制DOM、與js通信,那么EnableHTMLAccess 必須為True。
總結
以上是生活随笔為你收集整理的[Silverlight]奇技银巧系列-3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 直接用ISO文件在linux上安装新系统
- 下一篇: Source Insight让整块代码向