博文
好用的HttpRequest访问封装类(2006-08-07 10:59:00)
摘要:using System;using System.Data;using System.Configuration;using System.Net;using System.IO;using System.Text;using System.Collections.Generic;using System.Text.RegularExpressions;using System.Threading;using System.Web;
namespace DianPing{ /** Author:Heilong05@163.com* 如果您改进了这个类请发一份代码给我(heilong05 在163.com)*/ /// <summary> /// 网页类 /// </summary> public class WebPage {
#region 私有成员 private Uri m_uri; //网址 private List<Link> m_links; //此网页上的链接 private string m_title; //此网页的标题 private string m_html; //此网页的HTML代码 &nbs......
HttpWebRequest 超时问题(2006-08-03 11:31:00)
摘要:我怎么判断是否超时?现在我的程序每次超时就抛出异常。怎么让他超时以后等几分钟然后再尝试呢?
可以采用线程池,超时后调用回调函数
问题是 我不知道怎么判断他超时!
[C#]using System;using System.Threading;// TaskInfo contains data that will be passed to the callback// method.public class TaskInfo { public RegisteredWaitHandle Handle = null; public string OtherInfo = "default";}public class Example { public static void Main(string[] args) { // The main thread uses AutoResetEvent to signal the // registered wait handle, which executes the callback // method. AutoRes......
C# 写的 HttpRequsetResponse 类,异步、事件... 还热乎(2006-08-03 11:27:00)
摘要://调用示例:/*2003-7-11.支持Proxy2.可指定同步或异步3.一些小修改*/private void button1_Click(object sender, System.EventArgs e)?{??HttpRequestResponse xx = new HttpRequestResponse();??xx.DataArrival += new DataArrivalEventHandler(xx_DataArrival);??//xx.SendRequest(@"http://localhost:2080/examples/myservlets/servlet2","message=QQ&desttel=13910911925&mytel=13910081138&mypwd=263996211");??xx.SendRequest(@"http://localhost","message=你好QQ&desttel=13910911925&mytel=13910081138&mypwd=263996211","GET",true);??xx.SendRequest("http://localhost/quickstart/util/srcview.aspx?path=/quickstart/howto/samples/net/WebRequests/clientGETasync.src","post",false);?}private int i=0;private void xx_DataArrival(object sender, DataArrivalEventArgs e)?{??Console.WriteLine( i++);??Console.Write(e.RecievedData? );??if (e.IsComplete)???{???Console.Write("[" + ((HttpRequestResponse) sender).Request.CookieContainer.GetCookieHeader(((HttpRequestResponse) sender).Response.ResponseUri).ToString() + "]");???}??}
//==......
Asp.Net使用POST方法最简单的实现(2006-08-03 11:26:00)
摘要:
Asp.Net 2.0 中实现了IButtonControl接口的控件都有一个PostBackUrl属性,可以进行跨页面提交,就是用的POST方法。那么在1.x中费了一番周折的POST提交就很简单了,只要把PostBackUrl设置为提交页,在那提交页用Request.Params[]就能拿到POST的表单参数了。还能用PreviousPage.FindControl去取前一页的控件。这里用Request和PreviousPage去取值都和Server.Transfer很象,但CrossPagePostBack可以跨站点。
这里是一个例子,里面还有关于本地化的测试。PS,不知道有没有哪位同志遇到类似情况:/App_GlobalResources下的资源文件有Resource.zh.resx的话就会报错。。我的VS是中文的,估计他默认的资源文件就是Resource.zh.resx吧。......
ASP.NET2.0中的ClientScriptManager 类用法—如何添加(2006-08-03 11:25:00)
摘要:
在ASP.NET2.0中,ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本。具有相同的键和类型的脚本被视为重复脚本。因此,我们可以使用脚本类型来避免混淆可能用在页中的来自不同用户控件的相似脚本。 <html> <head> <title>ClientScriptManager Example</title> </head> <body> <form id="Form1" runat="server"> <input type="text" id="Message"> <input type="button" value="ClickMe" onclick="DoClick()"> </form> </body></html>
1 <%@ Page Language="C#"%> 2 <script runat="server"> 3 public void Page_Load(Object sender, EventArgs e) 4 { 5 // 定义客户端脚本类型和名称 6 String csname1 = "PopupScript"; 7 String csname2 = "ButtonClickScript"; 8 Type cstype = this.GetTy......
通过ADO.NET存取文件(2006-08-03 11:25:00)
摘要:
有时我们需要把一些大的数据对象如图片、可执行文件、视频和文档等数据存入数据库。在MS SQL Server中,这要用到Image数据类型,可以保存多达2G的数据。以下给出一个通过ADO.NET和MS SQL Server实现的小小的例子。
先创建一个测试数据表。在查询分析器中输入并执行以下语句:Create table [imgtable]( [imgid] [int] IDENTITY(1,1) NOT NULL, [imgname] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL, [imgData] [image] NULL, PRIMARY KEY CLUSTERED ( [imgid] ) ON [PRIMARY]) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
这要在你所选的数据库中就多了一个名叫imgtable的表。
VS中的代码如下:using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Data.SqlClient;using System.IO;
namespace ADO_Demo{ /// <summary> /// Form1 的摘要说明。 /// </summary> public class ADO_Demo : System.Windows.Forms.Form { private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.OpenFileDi......
ASP.NET2.0数据库之SQL Server安全性(2006-08-03 11:24:00)
摘要:SQL Server的安装有两个关于安全模式的选项。它们之间的差别在于由哪一个软件执行认证过程。认证是一个确认将要连接SQL Server的用户身份的过程。一旦执行了认证,SQL Server就能验证这个用户是否具有许可来连接一个被请求的资源,例如一个数据库。如果用户具有连接数据库的许可,那么SQL Server将允许连接请求成功,否则,连接失败。这个验证用户许可的过程还被称为授权。
· Windows Authentication(还被称为Trusted Authentication或者Integrated Security)使用进行连接请求过程的Windows用户身份来执行对数据库的授权。在这种情况下,连接字符串不必提供显式的用户名和密码。ASP.NET以一个名为"ASPNET"的本地用户来运行(或者在IIS 6.0当中使用用户名"Network Service"),所以当使用Windows Authentication时,SQL将会检查这个用户是否拥有使用数据库的许可。此时,所有的ASP.NET应用程序都用这个相同的用户运行,所以该安全模式对这些应用程序一视同仁。虽然可以在单独的ASP.NET进程中运行每一个应用程序(单独的用户运行每个程序),或者可以模拟进行连接请求的浏览器客户的Windows用户身份,但是这些内容都超出了本书所要讲述的范围。不过,客户模拟的情况在Web应用程序中是Windows Authentication最常见的使用方式。
· SQL Authentication针对在SQL Server内配置的用户来检查显式提供的用户名和密码(无需涉及操作系统)。在这种情况下,在ASP.NET进程中运行的每个应用程序都能以单独的证书来连接数据库,这样就把应用程序合理地隔离开了(应用程序A如果没有B的用户名和密码就不能连接至B的数据库)。这是用于部署的Web应用程序的最常见认证模式,特别是在共享宿主的情况下。它的一个小缺点就是需要应用程序保留用于连接的用户账户的密码,并且如果该密码被恶意用户获取,那么将危及数据库的安全。但是,在本书后面将会看到,ASP.NET提供了一个安全的方式,将SQL Authentication密码以加密的格式保存在Web.config文件中,这样就降低了密码被获取的风险。
· Mixed Mode是SQL S......
C#-委托和事件(2006-08-03 11:23:00)
摘要:
要为类构造一个事件,必须用 event 来声明一个 delegate 型的字段,如:
puclic calss Test{ public delegate EventHandler(object sender, EventArgs e); //声明为delegate 型的事件;}
然后要指定一个事件的名称,并写出处理语句: public event EventHandler Load
在创建类的实例后定义这个 “Load”事件: Test m=new Test(); m.load=new EventHandler(m_Load); void m_Load(object sender, EventArgs e) { MessageBox.Show(" this is a class event"); }
再看看下面的完整的一段代码:
using System; class TestClass { static void Main(string[] args) { ......
.NET Framework与.NET Framework SDK有什么不同?(2006-08-03 11:22:00)
摘要:
很多新手也学了很长时间的.NET,但对于这.NET Framework与.NET Framework SDK到底有什么区别可能还是不太清楚,本人也是借别人的话重新阐述一下,希望可以给新手提供帮助。.NET Framework是微软开发的运行于老版本之上的.NET软件运行平台。只要安装了.NET Framework,则从Windows 98到Windows XP都可以运行.NET程序。它是一种新的软件运行平台,提供了.NET程序运行时支持和功能强大的类库。可以从微软网站免费下载,大概20多MB。
如果只安装了.NET Framework,只能运行.NET应用程序,而不能开发.NET应用程序。
.NET Framework SDK 包括了微软提供的.NET 语言编译器(如C#编译器CSC.exe和VB.NET编译器VBC.exe),完整的.NET Framework文档,以及各种工具(如AL.exe和SN.exe等),大概有110多MB。
装了这两个东西之后,你就可以用记事本来编写代码,然后在DOS窗口中手动编译.NET程序啦。......
设置上传文件的最大大小(2006-08-03 11:21:00)
摘要:在web.config中添加httpRuntime元素,如下:<configuration> <system.web> <httpRuntime maxRequestLength="8192" useFullyQualifiedRedirectUrl="true" executionTimeout="45" versionHeader="1.1.4128"/> </system.web></configuration>其中maxRequestLength属性就是限制上传大小的,如设为"8192"即为8M。......
