千家信息网

如何隐藏ASP中的MediaPlayer控件播放文件地址

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了如何隐藏ASP中的MediaPlayer控件播放文件地址,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在播放视频时,
千家信息网最后更新 2026年11月01日如何隐藏ASP中的MediaPlayer控件播放文件地址

这篇文章主要介绍了如何隐藏ASP中的MediaPlayer控件播放文件地址,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

在播放视频时,直接查看页面源文件可看到视频文件地址,MediaPlayer控件播放器将在页面上加上如下初始化语句:

MediaPlayer控件初始化可查看到源文件地址

Sys.Application.add_init(function() {      $create(Sys.UI.Silverlight.MediaPlayer, {"autoPlay":true,"mediaSource":"http://211.142.31.235/Nas1/VOD/CP0001/490Kbps/D/DI/DIA/DiaoZhongYuan1/DiaoZhongYuan1.wmv","scaleMode":2,"source":"UserControl/playerTheme/player.xaml","volume":1}, null, null, $get("myUserMediaPlayer_player_parent"));  });


解决方案是先建立一个字符串加密解密服务

加密、解密工具类

  1/**//// 2    /// 对字符串进行、加解密的工具类3    /// 4    public class DESEncryptor5    {6        静态公共方法#region 静态公共方法7        /**//// 8        /// 对字符串进行加密9        /// 10        /// 源字符串11        /// 加密后的字符串12        public static string  ExecEncrypt(string strSource)13        {14            DESEncryptor desEncryptor = new DESEncryptor() ;15            desEncryptor.InputString = strSource ;16            desEncryptor.DesEncrypt() ;17            return desEncryptor.OutString ;18        }19        /**//// 20        /// 对已经加密的字符串进行解密21        /// 22        /// 已经加密的字符串23        /// 还原后的字符串24        public static string  ExecDeEncrypt(string strSource)25        {26            DESEncryptor desEncryptor = new DESEncryptor() ;27            desEncryptor.InputString = strSource ;28            desEncryptor.DesDecrypt() ;29            return desEncryptor.OutString ;30        }31        #endregion3233        私有成员#region 私有成员 34        /**////  35        /// 输入字符串 36        ///  37        private string inputString=null; 38        /**////  39        /// 输出字符串 40        ///  41        private string outString=null; 42        /**////  43        /// 输入文件路径 44        ///  45        private string inputFilePath=null; 46        /**////  47        /// 输出文件路径 48        ///  49        private string outFilePath=null; 50        /**////  51        /// 加密密钥 52        ///  53        private string encryptKey="fanmenglife"; 54        /**////  55        /// 解密密钥 56        ///  57        private string decryptKey = "fanmenglife"; 58        /**////  59        /// 提示信息 60        ///  61        private string noteMessage=null; 62        #endregion 6364        公共属性#region 公共属性 65        /**////  66        /// 输入字符串 67        ///  68        public string InputString 69        { 70            get{return inputString;} 71            set{inputString=value;} 72        } 73        /**////  74        /// 输出字符串 75        ///  76        public string OutString 77        { 78            get{return outString;} 79            set{outString=value;} 80        } 81        /**////  82        /// 输入文件路径 83        ///  84        public string InputFilePath 85        { 86            get{return inputFilePath;} 87            set{inputFilePath=value;} 88        } 89        /**////  90        /// 输出文件路径 91        ///  92        public string OutFilePath 93        { 94            get{return outFilePath;} 95            set{outFilePath=value;} 96        } 97        /**////  98        /// 加密密钥 99        ///  100        public string EncryptKey 101        { 102            get{return encryptKey;} 103            set{encryptKey=value;} 104        } 105        /**////  106        /// 解密密钥 107        ///  108        public string DecryptKey 109        { 110            get{return decryptKey;} 111            set{decryptKey=value;} 112        } 113        /**////  114        /// 错误信息 115        ///  116        public string NoteMessage 117        { 118            get{return noteMessage;} 119            set{noteMessage=value;} 120        } 121        #endregion 122123        构造函数#region 构造函数 124        /**//// 125        /// 构造函数126        /// 127        public DESEncryptor() 128        { 129            // 130            // TODO: 在此处添加构造函数逻辑 131            // 132        } 133        #endregion 134135        DES加密字符串#region DES加密字符串 136        /**////  137        /// 加密字符串 138        /// 注意:密钥必须为8位 139        ///  140        public void DesEncrypt() 141        { 142            byte[] byKey=null; 143            byte[] IV= {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF}; 144            try 145            { 146                byKey = System.Text.Encoding.UTF8.GetBytes(this.encryptKey.Substring(0,8)); 147                DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 148                byte[] inputByteArray = Encoding.UTF8.GetBytes(this.inputString); 149                MemoryStream ms = new MemoryStream(); 150                CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write) ; 151                cs.Write(inputByteArray, 0, inputByteArray.Length); 152                cs.FlushFinalBlock(); 153                this.outString=Convert.ToBase64String(ms.ToArray()); 154            } 155            catch(System.Exception error) 156            { 157                this.noteMessage=error.Message; 158            } 159        } 160        #endregion 161162        DES解密字符串#region DES解密字符串 163        /**////  164        /// 解密字符串 165        ///  166        public void DesDecrypt() 167        { 168            byte[] byKey = null; 169            byte[] IV= {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF}; 170            byte[] inputByteArray = new Byte[this.inputString.Length]; 171            try 172            { 173                byKey = System.Text.Encoding.UTF8.GetBytes(decryptKey.Substring(0,8)); 174                DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 175                inputByteArray = Convert.FromBase64String(this.inputString); 176                MemoryStream ms = new MemoryStream(); 177                CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write); 178                cs.Write(inputByteArray, 0, inputByteArray.Length); 179                cs.FlushFinalBlock(); 180                System.Text.Encoding encoding = new System.Text.UTF8Encoding(); 181                this.outString=encoding.GetString(ms.ToArray()); 182            } 183            catch(System.Exception error) 184            { 185                this.noteMessage=error.Message; 186            } 187        } 188        #endregion 189}

加密、解密WebService,调用工具内加密、解密方法:

 1/**//// 2    /// Summary description for Service13    /// 4    [WebService(Namespace = "http://tempuri.org/")]5    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]6    [System.ComponentModel.ToolboxItem(false)]7    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 8    // [System.Web.Script.Services.ScriptService]9    public class Service1 : System.Web.Services.WebService10    {11        /**//// 12        /// 加密13        /// 14        /// 地址15        /// 16        [WebMethod]17        public string Encrypt(string url)18        {19            return DESEncryptor.ExecEncrypt(url);20        }2122        /**//// 23        /// 解密24        /// 25        /// 地址26        /// 27        [WebMethod]28        public string DeEncrypt(string url)29        {30            return DESEncryptor.ExecDeEncrypt(url);31        }32    }

在MediaPlayer控件播放页面加载时,先调用WebService内加密方法对播放地址进行加密,然后注册JavaScript脚本调用视频文件播放方法:

播放页面加载

protected void Page_Load(object sender, EventArgs e)          {              if (!IsPostBack)              {                  //对播放地址进行加密                  string encryptUrl = local.Encrypt(playUrl);                  //注册脚本,调用javascript播放方法                 Page.ClientScript.RegisterStartupScript(this.GetType(), "", " setTimeout(\"onPlay('" + encryptUrl + "')\",1000)", true);               }        }

JavaScript调用WebService通过微软提供的WebService.htc实现,ASP.NET中使用WebService.htc需要在HTML代码中添加如下代码:

注意:该div必需在forms之外

Javascript代码:

 1 function getUrl(str) {2     //***个参数是webservice的url,后面是名称3     serviceDiv.useService("http://localhost:88/Service1.asmx?WSDL", "news");4     //设置一个回调函数,service返回结果的时候回调;***个参数是回调函数的名称,后面的是webservice的参数5     intCallID = serviceDiv.news.callService(url_result, "DeEncrypt", str); //这里有两个参数..6 }7 8 function url_result(result)//回调函数9 {10     var media_player = $find('myUserMediaPlayer_player');11     media_player.set_mediaSource(result.value);12     media_player.set_autoPlay(true);13 }14 15 function onPlay(str) {16     getUrl(str);17 }

有几点需说明:

1. 为什么在Page_Load事件里注册脚本不直接调用Javascript内播放方法,因为页面需完全加载后,WebService.htc才会被初始化,所以我用setTimeout方法延迟一段时间再调用播放方法。

2. 大家在使用WebService回调函数时记得判断返回结果是否成功。

通过以上方法,在页面上查看源文件便无法查看到播放文件地址了,MediaPlayer初始化语句更新为如下:

更改后MediaPlayer控件初始化

Sys.Application.add_init(function() {      $create(Sys.UI.Silverlight.MediaPlayer, {"autoPlay":true,"scaleMode":1,"source":"../UserControl/playerTheme/VIPPlayer.xaml","volume":1}, null, null, $get("ump_player_parent"));  });

感谢你能够认真阅读完这篇文章,希望小编分享的"如何隐藏ASP中的MediaPlayer控件播放文件地址"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

字符 字符串 加密 方法 地址 文件 函数 控件 页面 密钥 参数 篇文章 路径 输入 输出 代码 工具 源文件 脚本 视频 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司华为 互联网科技官网 疫情对互联网科技公司影响 智能科技公司是互联网公司吗 合肥互联网科技公司 互联网科技的英文 唐信互联网科技 大连 佰商互联网科技有限公司 互联网科技有限公司 翻译 哈尔滨新华互联网科技学院 昊天互联网科技有限公司 中国航天科技大学国际工业互联网 江苏苏星互联网科技有限公司 互联网风格科技公司名称 云鲸互联网络科技有限公司 江苏互联网智能科技产品出厂价 银川新华互联网科技学校原画 科技互联网经济论坛 华人运通互联网科技公司 黑龙江互联网科技公司 南京欣网互联网络科技有限公司 广州紫鲸互联网科技有限公司 互联网与未来科技 江苏南京365互联网科技 湖南一路畅行互联网科技 深圳互联网科技的发展 银行科技岗属于互联网吗 吉林省码上互联网科技电话 科技和互联网行业的特点 互联网科技博主张洲
0