URL重写小结

本文介绍了ASP.NET中实现URL重写的两种方法:手动重写和使用第三方模块。重点讲解了如何利用System.Web.HttpContext类的RewritePath()方法在不同阶段进行路径重写,并讨论了在不同认证方式下最佳放置位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

URL重写有很多中,第三方的url 重写模块也有很多,这里是我对我用过的东西的一些总结。

 

一,自己手动在asp.net级别的重写,

 

通过 System.Web.HttpContext 类的 RewritePath() 方法,可以在 ASP.NET 级别实现 URL 重写。HttpContext 类包含有关特定 HTTP 请求的 HTTP 特定信息。对于 ASP.NET 引擎收到的每个请求,均为该请求创建一个 HttpContext 实例。此类具有如下属性:RequestResponse,提供对传入请求和传出响应的访问;ApplicationSession,提供对应用程序和会话变量的访问;User,提供有关通过了身份验证的用户的信息;其他相关属性。

使用 Microsoft® .NET Framework Version 1.0,RewritePath() 方法可以接受单个字符串作为要使用的新路径。HttpContext 类的 RewritePath(string) 方法在内部对 Request 对象的 Path 属性和 QueryString 属性进行更新。除了 RewritePath(string),.NET Framework 1.1 还包括另一种形式的 RewritePath() 方法,此方法可以接受三个字符串输入参数。此备用重载形式不仅要设置 Request 对象的 Path 属性和 QueryString 属性,还要设置内部成员变量,这些变量用于计算 Request 对象的 PhysicalPathPathInfoFilePath 属性值。

要在 ASP.NET 中实现 URL 重写,需要创建 HTTP 模块或 HTTP 处理程序,以便完成以下操作:

  1. 检查被请求的路径,以确定 URL 是否需要重写。

  2. 如果需要重写,通过调用 RewritePath() 方法来重写路径。

但写的位置很有讲究,具体可以参考MSDN,这里总结如下:如果不想使用任何身份验证,则无论 URL 重写发生在 BeginRequestAuthenticateRequest 还是 AuthorizeRequest 中都没有什么关系。如果要使用窗体身份验证而不使用 Windows 身份验证,请将 URL 重写放在 AuthorizeRequest 事件处理程序中执行。最后,如果要使用 Windows 身份验证,请在 BeginRequestAuthenticateRequest 事件进行过程中安排 URL 重写。

二,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值