音乐

当前位置:北京快三 > 音乐 > Silverlight 4 本三步跳件系统访谈援救

Silverlight 4 本三步跳件系统访谈援救

来源:http://www.yylbdq.com 作者:北京快三 时间:2019-10-10 19:59

文件访问仅限于在硬盘上的某些地方: 主要是在用户文件夹中,如我的文档、 图片收藏和我的音乐。但在这些方面限制的文件系统中,访问方法几乎相同, Silverlight 中使用和在.net 中的一样。通常,您开始通过调用 Environment.GetFolderPath 获取您想访问的文件夹的路径。以下代码段枚举在我的文档中的文件和饲料添加剂到一个名为 FileList 的 ListBox 的文件的名称:

string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

在WebBrowser下对网页进行操作其实是一件挺轻松的事情,他可以很方便实现自定义的网站访问习惯。而WebBrowser毕竟是对MS原生控件的封装,当我们使用C#下的WebBrowser尤其是这样,虽然他可以更方便大家去掉用,但是他的方便却是牺牲了灵活性为代价的。

foreach (string file in Directory.EnumerateFiles(path))

有一天我想使用WebBrowser获取一个网站的COOKIE,在调用Document.Cookie时,发现无法完整获取其COOKIE,百思不得其解,这么简单的功能,WebBrowser也会秀逗。经过抓包分析,发现原来该网站对写入到用户端关键的Cookie,加入httponly

{

HttpOnly,其实是一个提高WEB网站应用程序安全性的一个功能,但是大家往往都把他给忽略掉了。比如在ASP.NET 2.0的web.config的配制文件里就提供这个子的设置

FileList.Items.Add(file.Substring(file.LastIndexOf('\') + 1));

 转载请注明出处:

}

1 <httpCookies httpOnlyCookies="true" /> 
2 //  ***********.NET的代码如: 
3 HttpCookie myCookie = new HttpCookie("myCookie"); 
4   myCookie.HttpOnly = true; 
5   Response.AppendCookie(myCookie); 

当然,这不限于枚举文件。您可以打开文件、 创建文件,并删除文件,并可以执行同样的目录。此外还有由于用户同意提升的权限时,此应用程序被安装,你可以写到到硬盘上的数据的大小没有被限制。

 

以下演示了 Silverlight 文件访问操作中的,我写了我的图片查看器低于合照。 当开始,它填充 TreeView 控件的所有文件夹和子文件夹在我的图片目录。 您可以展开和折叠的树的分支机构和时选择了某个文件夹窗口的右半部分将填充该目录中的所有 png 和 JPGs 的缩略图图像。然后,您可以单击一个缩略图,看到的子窗口中图片的特写。单击关闭子窗口并继续照片浏览图片 (或 X 子窗口的右上)。

 就是这个小小的设置,令WebBrowser拿他却是没辙,查了大量资料,要想实现这个功能,一定需要实现对最原始的网络流的读写,这种方法对很多程序员来说实现难度太大了。下面就教大家实现一个很简单的实现方法

北京快三官网 1

 

您可以 下载源代码 和自己试一试。一次运行该应用程序,在您的浏览器中,右键单击它以将其作为出的浏览器应用程序安装。查看器运行浏览器之外,您可以开始浏览图片。

 1 public string Cookie() 
 2         { 
 3             if (this.Url == null) 
 4                 return null; 
 5             string dir = this.Url.Host; 
 6             FileStream fr = new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.Cookies) + "\index.dat", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); 
 7             byte[] __dat = new byte[(int)fr.Length]; 
 8             fr.Read(__dat, 0, __dat.Length); 
 9             fr.Close(); 
10             fr.Dispose(); 
11             string __datstream = Encoding.Default.GetString(__dat); 
12             int p1 = 0; 
13             p1 = __datstream.IndexOf("@" + dir, p1); 
14             if (p1 == -1) 
15                 p1 = __datstream.IndexOf("@" + dir.Substring(dir.IndexOf('.') + 1)); 
16             if (p1 == -1) 
17                 return this.Document.Cookie; 
18             int p2 = __datstream.IndexOf(".txt", p1 + 1); 
19             p1 = __datstream.LastIndexOf('@', p2); 
20             string dm = __datstream.Substring(p1 + 1, p2 - p1 + 3).TrimStart('?'); 
21             p1 = __datstream.LastIndexOf(":", p1); 
22             p2 = __datstream.IndexOf('@', ++p1); 
23             __datstream = string.Format("{0}@{1}", __datstream.Substring(p1, p2 - p1), dm); 
24              
25             Dictionary<string, string> __cookiedicts = new Dictionary<string, string>(); 
26             string __n; 
27             StringBuilder __cookies = new StringBuilder(); 
28             __datstream = File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.Cookies) + "\" + __datstream, Encoding.Default); 
29             p1 = -2; 
30             do 
31             { 
32                 p1 += 2; 
33                 p2 = __datstream.IndexOf('n', p1); 
34                 if (p2 == -1) 
35                     break; 
36                 __n = __datstream.Substring(p1, p2 - p1); 
37                 p1 = p2 + 1; 
38                 p2 = __datstream.IndexOf('n', p1); 
39                 if (!__cookiedicts.ContainsKey(__n)) 
40                     __cookiedicts.Add(__n, __datstream.Substring(p1, p2 - p1)); 
41             } 
42             while ((p1 = __datstream.IndexOf("*n", p1)) > -1); 
43             if (this.Document.Cookie != null && this.Document.Cookie.Length > 0) 
44             { 
45                 foreach (string s in this.Document.Cookie.Split(';')) 
46                 { 
47                     p1 = s.IndexOf('='); 
48                     if (p1 == -1) 
49                         continue; 
50                     __datstream = s.Substring(0, p1).TrimStart(); 
51                     if (__cookiedicts.ContainsKey(__datstream)) 
52                         __cookiedicts[__datstream] = s.Substring(p1 + 1); 
53                     else 
54                         __cookiedicts.Add(__datstream, s.Substring(p1 + 1)); 
55                 } 
56             } 
57             foreach (string s in __cookiedicts.Keys) 
58             { 
59                 if (__cookies.Length > 0) 
60                     __cookies.Append(';'); 
61                 __cookies.Append(s); 
62                 __cookies.Append('='); 
63                 __cookies.Append(__cookiedicts[s]北京快三官网,); 
64             } 
65             return __cookies.ToString(); 
66         } 

填充 TreeView 使用的文件夹的名称的代码如下所示:

if (Application.Current.HasElevatedPermissions)

{

string path = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);

foreach (string dir in Directory.EnumerateDirectories(path))

{

TreeViewItem item = new TreeViewItem();

本文由北京快三发布于音乐,转载请注明出处:Silverlight 4 本三步跳件系统访谈援救

关键词:

上一篇:桃子老师和她的孩子们【2】

下一篇:没有了