|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。在播放视频时,间接检察页面源文件可看到视频文件地点,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/**////<summary>
2///对字符串举行、加解密的工具类
3///</summary>
4publicclassDESEncryptor
5{
6静态大众办法#region静态大众办法
7/**////<summary>
8///对字符串举行加密
9///</summary>
10///<paramname="strSource">源字符串</param>
11///<returns>加密后的字符串</returns>
12publicstaticstringExecEncrypt(stringstrSource)
13{
14DESEncryptordesEncryptor=newDESEncryptor();
15desEncryptor.InputString=strSource;
16desEncryptor.DesEncrypt();
17returndesEncryptor.OutString;
18}
19/**////<summary>
20///对已加密的字符串举行解密
21///</summary>
22///<paramname="strSource">已加密的字符串</param>
23///<returns>复原后的字符串</returns>
24publicstaticstringExecDeEncrypt(stringstrSource)
25{
26DESEncryptordesEncryptor=newDESEncryptor();
27desEncryptor.InputString=strSource;
28desEncryptor.DesDecrypt();
29returndesEncryptor.OutString;
30}
31#endregion
32
33公有成员#region公有成员
34/**////<summary>
35///输出字符串
36///</summary>
37privatestringinputString=null;
38/**////<summary>
39///输入字符串
40///</summary>
41privatestringoutString=null;
42/**////<summary>
43///输出文件路径
44///</summary>
45privatestringinputFilePath=null;
46/**////<summary>
47///输入文件路径
48///</summary>
49privatestringoutFilePath=null;
50/**////<summary>
51///加密密钥
52///</summary>
53privatestringencryptKey="fanmenglife";
54/**////<summary>
55///解密密钥
56///</summary>
57privatestringdecryptKey="fanmenglife";
58/**////<summary>
59///提醒信息
60///</summary>
61privatestringnoteMessage=null;
62#endregion
63
64大众属性#region大众属性
65/**////<summary>
66///输出字符串
67///</summary>
68publicstringInputString
69{
70get{returninputString;}
71set{inputString=value;}
72}
73/**////<summary>
74///输入字符串
75///</summary>
76publicstringOutString
77{
78get{returnoutString;}
79set{outString=value;}
80}
81/**////<summary>
82///输出文件路径
83///</summary>
84publicstringInputFilePath
85{
86get{returninputFilePath;}
87set{inputFilePath=value;}
88}
89/**////<summary>
90///输入文件路径
91///</summary>
92publicstringOutFilePath
93{
94get{returnoutFilePath;}
95set{outFilePath=value;}
96}
97/**////<summary>
98///加密密钥
99///</summary>
100publicstringEncryptKey
101{
102get{returnencryptKey;}
103set{encryptKey=value;}
104}
105/**////<summary>
106///解密密钥
107///</summary>
108publicstringDecryptKey
109{
110get{returndecryptKey;}
111set{decryptKey=value;}
112}
113/**////<summary>
114///毛病信息
115///</summary>
116publicstringNoteMessage
117{
118get{returnnoteMessage;}
119set{noteMessage=value;}
120}
121#endregion
122
123机关函数#region机关函数
124/**////<summary>
125///机关函数
126///</summary>
127publicDESEncryptor()
128{
129//
130//TODO:在此处增加机关函数逻辑
131//
132}
133#endregion
134
135DES加密字符串#regionDES加密字符串
136/**////<summary>
137///加密字符串
138///注重:密钥必需为8位
139///</summary>
140publicvoidDesEncrypt()
141{
142byte[]byKey=null;
143byte[]IV={0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF};
144try
145{
146byKey=System.Text.Encoding.UTF8.GetBytes(this.encryptKey.Substring(0,8));
147DESCryptoServiceProviderdes=newDESCryptoServiceProvider();
148byte[]inputByteArray=Encoding.UTF8.GetBytes(this.inputString);
149MemoryStreamms=newMemoryStream();
150CryptoStreamcs=newCryptoStream(ms,des.CreateEncryptor(byKey,IV),CryptoStreamMode.Write);
151cs.Write(inputByteArray,0,inputByteArray.Length);
152cs.FlushFinalBlock();
153this.outString=Convert.ToBase64String(ms.ToArray());
154}
155catch(System.Exceptionerror)
156{
157this.noteMessage=error.Message;
158}
159}
160#endregion
161
162DES解密字符串#regionDES解密字符串
163/**////<summary>
164///解密字符串
165///</summary>
166publicvoidDesDecrypt()
167{
168byte[]byKey=null;
169byte[]IV={0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF};
170byte[]inputByteArray=newByte[this.inputString.Length];
171try
172{
173byKey=System.Text.Encoding.UTF8.GetBytes(decryptKey.Substring(0,8));
174DESCryptoServiceProviderdes=newDESCryptoServiceProvider();
175inputByteArray=Convert.FromBase64String(this.inputString);
176MemoryStreamms=newMemoryStream();
177CryptoStreamcs=newCryptoStream(ms,des.CreateDecryptor(byKey,IV),CryptoStreamMode.Write);
178cs.Write(inputByteArray,0,inputByteArray.Length);
179cs.FlushFinalBlock();
180System.Text.Encodingencoding=newSystem.Text.UTF8Encoding();
181this.outString=encoding.GetString(ms.ToArray());
182}
183catch(System.Exceptionerror)
184{
185this.noteMessage=error.Message;
186}
187}
188#endregion
189}
加密、解密WebService,挪用工具内加密、解密办法:
1/**////<summary>
2///SummarydescriptionforService1
3///</summary>
4[WebService(Namespace="http://tempuri.org/")]
5[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
6[System.ComponentModel.ToolboxItem(false)]
7//ToallowthisWebServicetobecalledfromscript,usingASP.NETAJAX,uncommentthefollowingline.
8//[System.Web.Script.Services.ScriptService]
9publicclassService1:System.Web.Services.WebService
10{
11/**////<summary>
12///加密
13///</summary>
14///<paramname="url">地点</param>
15///<returns></returns>
16[WebMethod]
17publicstringEncrypt(stringurl)
18{
19returnDESEncryptor.ExecEncrypt(url);
20}
21
22/**////<summary>
23///解密
24///</summary>
25///<paramname="url">地点</param>
26///<returns></returns>
27[WebMethod]
28publicstringDeEncrypt(stringurl)
29{
30returnDESEncryptor.ExecDeEncrypt(url);
31}
32
}
在MediaPlayer控件播放页面加载时,先挪用WebService内加密办法对播放地点举行加密,然后注册JavaScript剧本挪用视频文件播放办法:
播放页面加载
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!IsPostBack)
{
//对播放地点举行加密
stringencryptUrl=local.Encrypt(playUrl);
//注册剧本,挪用javascript播放办法
Page.ClientScript.RegisterStartupScript(this.GetType(),"","setTimeout("onPlay("+encryptUrl+")",1000)",true);}
}
JavaScript挪用WebService经由过程微软供应的WebService.htc完成,ASP.NET中利用WebService.htc必要在HTML代码中增加以下代码:
<divid="serviceDiv"style="behavior:url(WebService.htc)"></div>注重:该div必须在forms以外
Javascript代码:
1functiongetUrl(str){
2//第一个参数是webservice的url,前面是称号
3serviceDiv.useService("http://localhost:88/Service1.asmx?WSDL","news");
4//设置一个回调函数,service前往了局的时分回调;第一个参数是回调函数的称号,前面的是webservice的参数
5intCallID=serviceDiv.news.callService(url_result,"DeEncrypt",str);//这里有两个参数..
6}
7
8functionurl_result(result)//回调函数
9{
10varmedia_player=$find(myUserMediaPlayer_player);
11media_player.set_mediaSource(result.value);
12media_player.set_autoPlay(true);
13}
14
15functiononPlay(str){
16getUrl(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"));
});
不外这只是争对一样平常用户,假如人人有更好的办法能够拿出来一同共享,但愿我的文章对人人有匡助
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。 |
|