|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
呵呵,那你就关注微软的招聘信息以及别人的招聘经验啊,还有也不一定去做技术的,你如果真的想去就多了解了解。(其实我的意思是说想到微软做技术是很不容易的。asp.net在asp.net里完成URL重写(URLRewriter)的一个最复杂的办法。
参考了(作者ScottMitchell翻译:Janssen)的高文,固然没有完整看分明,可是也照猫画虎地做了一个,很有“成绩”感。写出来分享一下。
原作里讲了良多的道理,这里就不说了(实在我也不懂)。这里就写操纵历程吧。目标是完成一个最复杂的能完成URL重写的程序。
1、必要设置一下IIS里的站点属性。
2、修正web.config的内容。
<system.web>
<httpHandlers>
<addverb="*"path="*.zhtml"type="ZDIL.URLRewriter.RewriterFactoryHandler,ZDILURLRewriter"/>
</httpHandlers>
</system.web>
个中*.zhtml就是地点栏内里写的网页的扩大名,就是给用户看的,这个能够随便改(可是要切合扩大名的划定规矩!)。固然要和第一步内里的设置相分歧才行。
3、写一个类。
usingSystem;
usingSystem.IO;
usingSystem.Web;
usingSystem.Web.UI;
namespaceZDIL.URLRewriter
{
/**////<summary>
///URL重写
///</summary>
publicclassRewriterFactoryHandler:IHttpHandlerFactory
{
/**////<summary>
///GetHandlerisexecutedbytheASP.NETpipelineaftertheassociatedHttpModuleshaverun.Thejobof
///GetHandleristoreturnaninstanceofanHttpHandlerthatcanprocessthepage.
///</summary>
///<paramname="context">TheHttpContextforthisrequest.</param>
///<paramname="requestType">TheHTTPdatatransfermethod(<b>GET</b>or<b>POST</b>)</param>
///<paramname="url">TheRawUrloftherequestedresource.</param>
///<paramname="pathTranslated">Thephysicalpathtotherequestedresource.</param>
///<returns>AninstancethatimplementsIHttpHandler;specifically,anHttpHandlerinstancereturned
///bythe<b>PageParser</b>class,whichisthesameclassthatthedefaultASP.NETPageHandlerFactorydelegates
///to.</returns>
publicvirtualIHttpHandlerGetHandler(HttpContextcontext,stringrequestType,stringurl,stringpathTranslated)
{
stringsendToUrl=url;//地点栏内里的地点
stringfilePath=pathTranslated;
stringsendToURLString="/web/index.aspx";//真正要会见的页面
stringqueryString="";//参数。好比?id=123
filePath=context.Server.MapPath(sendToURLString);//物理地点
//这句最主要了。转向了。
context.RewritePath(sendToURLString,String.Empty,queryString);
//这个还没有弄分明:)
returnPageParser.GetCompiledPageInstance(url,filePath,context);
}
publicvirtualvoidReleaseHandler(IHttpHandlerhandler)
{//这个也不懂了
}
}
}
这个类呢,要写在一个独自的项目内里,然后编译成ZDILURLRewriter.DLL文件。(注重文件名,写错了就不克不及一般运转了)。
4、完成了。
翻开IE,在地点栏里输出http://.../1.zhtml。
扫瞄者看到是一个静态页的地点,可是实践上会见的倒是/web/index.aspx这个静态网页。
怎样复杂吧。
固然了,这个是最复杂的,复杂到了“不克不及用”的境地了。由于他会把一切的*.zhtml的会见都“重写”到/web/index.aspx。
至于把甚么样的网页重写到哪一个网页,这里就不先容了(这里只讲办法,不讲完成的细节)。
办法良多了,原作是经由过程正则来婚配的,我是经由过程stringsendToUrl=url;来判别的。
其他的就看你们的必要了。
你觉得学习.NET怎么样,我懂的少,问的可能很幼稚,见笑了啊:) |
|