博文
ASP.net的URL重写(2006-08-10 14:48:00)
摘要:ASP.net的RUL重写
有关于URL的重写,本文也只是拿来主意。相继有MS的组件“URLRewriter”和在Global.asax里的“Application_BeginRequest()”编码方式,以及IIS里的ISAPI设置。
娜列下来,实现方法也都很简单。
方法一:MS组件
这里也不用详解了,相关请看:
http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspx
用法很简单,只需要把组件URLRewriter.dll拷到应用程序的bin目录下,然后在web.config下加入如下代码:
在中加入:
~/(\d{4})/(\d{2})/Default\.aspx
~/Default.aspx?ID=$1
然后在中加入:
......
c#写的asp.net程序url重写问题,解决有分(2006-08-10 14:40:00)
摘要:对于高手来说,这个问题是老生常谈了
可我一直很困惑,不知道如何在c#写的asp.net中实现; 占时使用的是三方的 ISAPI_Rewrite,这样才程序中有很多就发挥不了效果了
....
请教各位大虾,如何在c#写的asp.net程序中实现 url的重写功能能 ! 问题解决着有分 !!!
最简单的
http://support.microsoft.com/kb/308001/zh-cn:
HOW TO:使用 Visual C# .NET 创建 ASP.NET HTTP 处理程序
概要
实现处理程序
部署处理程序
配置系统
测试模块
参考
var sectionFilter = "type != 'notice' && type != 'securedata' && type != 'querywords'";
var tocArrow = "/library/images/support/kbgraphics/public/en-us/downarrow.gif";
var depthLimit = 10;
var depth3Limit = 10;
var depth4Limit = 5;
var depth5Limit = 3;
var tocEntryMinimum = 1;
.toc{display: none;}
概要
loadTOCNode(1, 'summary');
本分步指南演示如何使用 Visual C# .NET 创建简单的自定义 HTTP 处理程序。本文演示如何创建、部署和配置该处理程序。
实现处理程序
loadTOCNode(2, 'summary');
1.
打开 Microsoft Visual Studio .NET。 在 Visual C# .NET 中,新建一个名为 MyHandler 的类库项目。
2.
设置一个对 System.Web.dll 程序集的引用。
3.
将以下指令添加到该类中: using Syste......
如果使用HTML传递和接收参数值(2006-08-10 14:36:00)
摘要:如果使用HTML传递和接收参数值?
将以下代码另存为HTML文件:alixixi.htm,然后打开站点:
http://127.0.0.1/alixixi.htm?log_id=111&cat_id=222&page=333
回车即可显示演示效果,正常接收由HTML文件传递的值.
<script language="JScript">
<!-
var LocString=String(window.document.location.href);
function GetQueryString(str){
var rs=new RegExp("(^|)"+str+"=([^\&]*)(\&|$)","gi").exec(LocString),tmp;
if(tmp=rs)return tmp[2];
return "没有这个参数";
}
alert("日记编号:"+GetQueryString("log_id"));
alert("分类编号:"+GetQueryString("cat_id"));
alert("所在页数:"+GetQueryString("page"));
-->
</script>
......
利用WebClient和WebRequest类获得网页源代码(2006-08-10 14:28:00)
摘要:利用.NET框架提供的 WebClient类 和 WebRequest类,我们可以很轻易地得到给定URL地址的源代码,很简单,以下是C#的完整的例子.
查看例子
GetPageHtml.aspx
得到网页源代码
得到任意网页源代码
http://dotnet.aspx.cc/content.aspx
GetPageHtml.aspx.csusing System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
namespace eMeng.Exam
{
///
/// GetPageHtml 的摘要说明。
///
public class GetPageHtml : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button WebClientButton;
protected System.Web.UI.WebControls.Button WebRequestButton;
protected System.Web.UI.WebControls.TextBox ContentHtml;
protected System.Web.UI.WebControls.TextBox UrlTe......
URL 重写的常见用法(1)(2006-08-10 14:19:00)
摘要:适用范围:
Microsoft(r) ASP.NET
摘要:介绍如何使用 Microsoft ASP.NET 执行动态 URL 重写。URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程。讨论实现 URL 重写的各种技术,并介绍执行 URL 重写的一些实际情况。
本页内容
引言
URL 重写的常见用法
请求到达 IIS 时将会发生什么情况
实现 URL 重写
构建 URL 重写引擎
使用 URL 重写引擎执行简单的 URL 重写
创建真正“可删节”的 URL
结论
参考资料
引言
让我们花点时间来看一下网站上的一些 URL。您是否发现一些类似于 http://yoursite.com/info/dispEmployeeInfo.aspx?EmpID=459-099&type=summary 的 URL?或者,您可能将一系列网页从一个目录或网站移动到另一个目录或网站,结果导致已将旧 URL 用作书签的访问者断开链接。在本文中,我们将了解如何通过将 http://yoursite.com/info/dispEmployeeInfo.aspx?EmpID=459-099&type=summary 替换为类似于 http://yoursite.com/people/sales/chuck.smith 的网址,使用 URL 重写将那些冗长的 URL 缩写为富有意义且容易记忆的 URL。我们还将了解如何将 URL 重写用于创建智能 404 错误。
URL 重写是截取传入 Web 请求并自动将请求重定向到其他资源的过程。执行 URL 重写时,通常会检查被请求的 URL,并基于 URL 的值将请求重定向到其他 URL。例如,在进行网站重组而将 /people/ 目录下的所有网页移动到 /info/employees/ 目录中时,您可能希望使用 URL 重写来检查 Web 请求是否指向了 /people/ 目录中的文件。如果请求指向 /people/ 目录中的文件,您可能希望自动将请求重定向到 /info/employees/ 目录中的同一文件。
使用传统的......
post和get的不同之处(2006-08-10 13:16:00)
摘要:post和get的不同之处
GET与POST的区别在于:(对于CGI)
如果以GET方式传输,所带参数附加在CGI程式的URL后直接传给server,并可从server端的QUERY_STRING这个环境变量中读取;
如果以POST方式传输,则参数会被打包在数据报中传送给server,并可从CONTENT_LENGTH这个环境变量中读取出来。
还有一种情况是,你用的是GET方式,但传送的参数是路径,如:
----< ahref="/cgi-bin/a.pl/usr/local/bin/pine" >CGI< /a >
----这时所传递的参数"/usr/local/bin/pine"存放在PATH_INFO这个环境变量中。环境变量的读取方式为$str=$ENV{'QUERY_STRING'};
理论上说,GET是从服务器上请求数据,POST是发送数据到服务器。事实上,GET方法是把数据参数队列(query string)加到一个URL上,值和表单是一一对应的。比如说,name=John。在队列里,值和表单用一个&符号分开,空格用+号替换,特殊的符号转换成十六进制的代码。因为这一队列在URL里边,这样队列的参数就能看得到,可以被记录下来,或更改。通常GET方法还限制字符的大小。事实上POST方法可以没有时间限制的传递数据到服务器,用户在浏览器端是看不到这一过程的,所以POST方法比较适合用于发送一个保密的(比如信用卡号)或者比较大量的数据到服务器。
Post是允许传输大量数据的方法,而Get方法会将所要传输的数据附在网址后面,然后一起送达服务器,因此传送的数据量就会受到限制,但是执行效率却比Post方法好。
对于GET提交的数据,WWW服务器将把数据放在环境变量QUERY_STRING中;对于POST方法,数据被送到WWW服务器的STDOUT中,然后CGI从自己的STDIN中读取。使用传统的CGI方法,用户必须自己编程来处理这些数据。
GET与POST的区别在于,如果以GET方式传输,所带参数附加在CGI程式的URL后直接传给server,并可从server端的QUERY_STRING这个环境变量中读取;如果以POST方式传输,则参数会被打包在数据报中传送给server,并......
WEBFORM与WINFORM的交互问题(收集)(2006-08-10 11:45:00)
摘要:
其实我这个问题本身就提得有些模糊.你想知道的是两个工程之间的交互还是,在IE中使用winform控件,或是在winform中访问IE呢?
http://www.66study.com/Article/web/net/VB/200506/50514.html
http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx(应用了WebBrowser控件)
http://www.tldown.com/article/article_14859_1.html
http://blog.joycode.com/lostinet/archive/2004/06/04/23638.aspx
结合 MSHTML 与 WebBrowser 生成美观实用的 WinForm 应用程序。
我用WinForm开发也有一段时间了。我觉得目前的WinForm开发速度是够的,但是一些原本在HTML就很容易做到的事情,在WinForm中就很难实现了。
这个主要的原因可能是WinForm复用控件的能力非常强,但是可用的控件却非常少。一般买回来的控件不但贵,而且也不是太好扩展。
作为一个学了多年HTML的人,我当然希望在WinForm中依然能使用HTML的特征,例如强大的CSS!,自动排版伸缩的特征,(CSS与排版可以更方便打印!),以及脚本的编写。(有时候写脚本比写WinForm的程序更爽。具体情况具体做)。
要做这个其实不难。但是要灵活运用则不容易了。
通常,使用WebBrowser控件的人,只是简单地使用MSHTML调用WebBrowser里的东西。也就是说,这个调用是单项的,只考虑到修改HTML来显示某种东西。
今天我写这个随笔的意图是告诉大家怎样把用户在WebBrowser里的操作反馈给WinForm 。
做这个反馈的基石是......
用winform的方式操纵webform--浅谈IHttpHandler(2006-08-10 11:44:00)
摘要:
用winform的方式操纵webform--浅谈IHttpHandler
好久以前看过一篇有关自定义IHttpHandler的文章,当时就想写点自己的体会,一直没空。今天就说说这个吧。首先谈谈asp.net的一些参数传递和页面定向的方式 第一,asp.net是用Page.Navigate()调用新页面的URL。Page.Navigate()向浏览器返回了一个http状态码302,使得浏览器向server请求那个新的URL。这种导航方法导致每次客户请求都需两次在client和server之间往返。第二,任何要传递到新页面的信息都需作为URL的参数或存储在Session中或存储在数据库中以便新页面得到这些信息。传统的asp开发人员很习惯这种做法,但其他的web编程人员则有一些更高级的方法。但是很明显的这两个页面是有依赖性的,而依赖性是编译器捕捉不到的也是不容易在设计阶段建模的。所以在debug时,参数是否被正确的传递就只有我们自己检查了。再有传统的数据传递方式有可能会暴露一些关键的数据。更为关键的是这使得面向对象的设计变得很复杂。当然我并没有否定传统的方式,我这是在强调asp.net缺乏对服务器端的多页面之间的通信的支持。 但是我们可以自定义httphandler来扩充这种支持。 开始之前,我们先来看一下asp.net怎样处理页面请求,asp.net是通过System.Web.UI.PageHandlerFactory类的实例来处理。PageHandlerFactory依赖于另一个类PageParser。一个页面在第一次请求时PageParser把它编译成一个真正的.Net的类并cache已编译的实例 HttpApplication | |1.GetHandler() | PageHandlerFactory | |2.GetCompiledPageInstance() | PageParser 我们要做的第一步是override由asp.net......
关于在WinForm里用HttpWebRequest获得某个页面,并填写页面的t(2006-08-10 11:40:00)
摘要:方法如下:
step1:use HttpWebRequest class to request,and use HttpWebResponse get the response.
if you read the response, you can get the information including what did in the Page_load function.
step2: if you want to fill a textbox or click a button and etc.. in this page, you can repalce the response with the Message,and use HttpWebRequest class to post it to the server.The server will get what in the textbox or do the onclick function.
Message: you can use sniffer to catch the postbag and get what in it,usually with a '&' and the webcontrol name or id.It is a format of ASPX post.
step3: use HttpWebResponse get the response.You can read the response to get the information which did in the onclick function.
以下代码是向一个指定的页面发送请求,填写三个textbox,click一个button,并得到Server端的执行是否成功的class。注:由于页面的代码也是我写的,所以我知道将要Post页面的结构,即我知道每个页面控件的name和页面结构。
public class FtpMessage
{
private string m_fileName;
private string m_host;......
回复在IE中使用VS.net WinForm控件 (2006-08-10 11:04:00)
摘要: 回复: 在IE中使用VS.net WinForm控件
Using Windows Forms Controls in Internet Explorer
在IE浏览器里使用Windows Forms控件
(点击此处查看本文的beta1版)
本文描述了如何在IE浏览器中执行Windows Forms控件。使用者不用做任何提示,也无需注册,这些Windows Forms控件就能在IE里自动激活,并实现Common Language Runtime(CLR)的代码安全机制.在IE中激活Windows Forms控件可以分四步来完成,下面所列的是详细的步骤:
* 创建Windows Forms控件;
* 创建一个包含对象标签的HTML文档;
* 创建虚拟目录,复制并设置权限;
* 运行该控件。
1. Windows Forms控件:SimpleControl.dll
几乎所有的Windows Forms控件都可以用,但在这个例子里,我们使用的是包含在.NET Framework SDK QuickStart Tutorial Creating Controls中的SimpleControl控件。
2. HTML文档: SimpleControl.html
接下来一步是生成内有一个对象tag的HTML文档,以激活Windows Forms控件。此外,还要加入一些脚本和输入tag(input tags)到该控件的示范程序入口。
<object id="simpleControl1"
classid="http:SimpleControl.dll#Microsoft.Samples.WinForms.Cs.SimpleControl.SimpleControl"
height="300"
width="300">
<param name="Text" value="Simple Control">
</object>
对象tag:
classid包含两个有趣的部分:导向控件库的路径和全名(......