UrlRewriting在Community Server中的应用研究
2007-04-01 21:35 BAsil 阅读(2995) 评论(3) 编辑 收藏 举报大家都知道Community Server中使用了Url Rewrite,但是对于希望通过CS学习Url Rewrite的朋友,可能稍微难了一点,因为CS项目确实是相当的繁杂,我们不容易对Url Rewrite做一些有针对性的调试。
我在这里把涉及到UrlRewriting的部分抽取出来,做成一个Demo,使大家可以从中了解到CS是怎么针对UrlRewriting进行设计和应用的。
其中用到的类简单的列一下
Configuration/CSConfiguration.cs 取得communityserver.config中的内容
HttpModule/CSHttpModule.cs 在Begin_Request时执行UrlRewriting
SiteUrlsData.cs 取得SiteUrls.config中内容,定义url rewrite 重写的规则
SiteUrls.cs 匹配url rewrite重写的规则
CSContext.cs 每个请求会产生一个CScontext上下文
CSCache.cs 缓存
Globals.cs 全局的属性和方法,大部分注释掉
Openlab.Controls.OLPage 宝玉的重写的Page类,和CS中的CSPage完全一样,这里就不改了,主要是保证重写后的action仍然指向虚拟的url,具体的内容大家可以看看宝玉关于url rewrite的一篇文章。
forums/printpost.aspx 无后台cs类,在web.config中使用的pageBaseType起作用。我在测试中发现,只有aspx页面没有后台的cs类,才会调用pageBaseType中的类,网上很多朋友也碰到这个问题,不知道大家是怎么解决的。
forums/showpost.aspx 直接继承Openlab.Controls.OLPage类。
在web.config中,这样写
<pages pageBaseType="Openlab.Controls.OLPage, Openlab"/> <httpModules> <add name="UrlRewritingTest" type="UrlRewritingTest.CSHttpModule, UrlRewritingTest" /> </httpModules>
在communityserver.config中,别忘了
<communityserver> <core> <providers> <add name = "SiteUrlsDataProvider" type = "UrlRewritingTest.Components.SiteUrlsData, UrlRewritingTest" path = "siteurls.config" /> </providers> </core> </communityserver>
在浏览器中输入http://localhost/UrlRewritingTest/forums/1/PrintPost.aspx
http://localhost/UrlRewritingTest/forums/1/3/ShowPost.aspx
代码下载:CSUrlRewriting.zip
下载后,把CSUrlRewriting中的UrlRewritingTest映射为localhost/UrlRewritingTest即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架