ASP.NET中实现访问链接的静态地址映射

protected void Application_BeginRequest(Object sender, EventArgs e) {

        string strCurrentPath;
        strCurrentPath = Request.Path;
        //make sure that it ends with aspx.  This is some quick validation on the path.
        //This will shortcut processing for images and other files (WebResource.axd, for example).
        if(System.IO.Path.GetExtension(strCurrentPath).EndsWith(
            "aspx", true, System.Globalization.CultureInfo.InvariantCulture)) {
            string strCustomPath;
            string qString = Request.QueryString.ToString();
            if(qString != string.Empty)
                qString = "&" + qString;
            strCurrentPath = strCurrentPath.ToLowerInvariant();
            string appRoot = GetAppRoot(strCurrentPath);
            //string pageName = "";
            // the URL contains this folder name
            //Response.Write(strCurrentPath);
            if(strCurrentPath.IndexOf("catalog/", StringComparison.InvariantCultureIgnoreCase) > -1) {

                appRoot = appRoot.Replace("catalog/", "");
                strCustomPath = appRoot + "catalog.aspx?guid=" + System.IO.Path.GetFileNameWithoutExtension(strCurrentPath) + qString;

                // rewrite the URL
                Context.RewritePath(strCustomPath, false);
            }
            else if(strCurrentPath.IndexOf("product/", StringComparison.InvariantCultureIgnoreCase) > -1) {
                appRoot = appRoot.Replace("product/", "");

                strCustomPath = appRoot + "product.aspx?guid=" + System.IO.Path.GetFileNameWithoutExtension(strCurrentPath);
                // rewrite the URL

                Context.RewritePath(strCustomPath, false);
            }
        }
    }

时间: 2024-12-31 15:00:07

ASP.NET中实现访问链接的静态地址映射的相关文章

解决 ASP.NET 中目录访问权限的问题

asp.net|访问|解决|问题 症状:从 ASP.NET 应用程序,访问远程增强安全性的资源时可能会收到以下错误信息      登录失败:未知用户名或错误密码. 解决办法:      1   在 Web 服务器上修改 ASPNET 帐户的密码为 password .      2   在远程文件服务器上,修改 ASPNET 帐户(如果没有该帐户则创建之)的密码为 password .      3   在远程文件服务器上,为 ASPNET 帐户设置相应目录的访问权限.      4   修改

解决ASP.NET中目录访问权限的问题

症状:从 ASP.NET 应用程序,访问远程增强安全性的资源时可能会收到以下错误信息 登录失败:未知用户名或错误密码. 解决办法: 1 在 Web 服务器上修改 ASPNET 帐户的密码为 password . 2 在远程文件服务器上,修改 ASPNET 帐户(如果没有该帐户则创建之)的密码为 password . 3 在远程文件服务器上,为 ASPNET 帐户设置相应目录的访问权限. 4 修改 Web.config 文件,在 配置节中添加: <identity impersonate="

解决 ASP.NET中目录访问权限的问题_实用技巧

症状:从 ASP.NET 应用程序,访问远程增强安全性的资源时可能会收到以下错误信息 登录失败:未知用户名或错误密码. 解决办法:      1   在 Web 服务器上修改 ASPNET 帐户的密码为 password .      2   在远程文件服务器上,修改 ASPNET 帐户(如果没有该帐户则创建之)的密码为 password .      3   在远程文件服务器上,为 ASPNET 帐户设置相应目录的访问权限.      4   修改 Web.config 文件,在 <syste

ASP.NET中HTML页面的访问验证设置方法_实用技巧

可能有很多朋友和我一样不会留意到这样的问题,在ASP.NET中,使用其自身提供的访问验证功能(表单验证.Passport 验证.Windows 验证),并不会对静态文件(如 html.图像文件.文本文件等)进行访问限制,即使这些文件置于需要验证后才能访问的文件夹下,匿名用户仍然可以访问到这些文件.这是因为静态文件默认是由 IIS 处理,IIS 在接收到对这些文件的请求后,并不会转交给 ASP.NET 处理,所以,在 ASP.NET 中的权限验证失去了作用.换句话说,这些文件不在ASP.NET 的

ASP.NET中利用SQLXML WEB服务访问XML数据

asp.net|sql|web|web服务|xml|访问|数据      引言 使用SQLXML 的Web 服务从你的ASP.net应用程序中直接访问XML 数据       SQLXML 是扩展SQL 服务器现有的对检索和储存XML 数据的支持的一套附加的工具. 有了SQLXML 3.0,你现在就能使用SQL服务器展示Web 服务了.在SQLXML的Web 服务可以让用户执行存储过程,用户定义的功能,并且它们支持模板.       在这篇文章中,你将看出怎样展示一个作为Web 服务并构建一个简

在ASP.NET中自动给URL加上超级链接

作为一个程序员,在完成设计后还要根据程序的情况以及用户的反映不断对程序进行改进,这样才能不断地完善自己的作品.我在制作完软件商务网 http://www.bizsofts.com 的论坛后,发现人们总喜欢在帖子中加上各种有用的URL链接或Email地址.而我当初设计时没有考虑到这一点,使得这些URL链接或Email地址只能以文字的形式而并不是以超链接的形式显示,其它浏览帖子的人还必须把这些URL链接拷贝到浏览器中或把Email地址拷贝到Outlook中才能转到相应的链接地址或发送电子邮件到相应的

在ASP程序中访问Access数据库

access|程序|访问|数据|数据库          在基于微软IIS/PWS的网络平台上,通过服务器端运行的ASP程序来访问后台数据库,是一种最常见的模式了.而对于小型的数据库应用需求,微软的Access数据库,应该是与ASP程序配套使用的首选.由于Access数据库的ODBC驱动程序支持的SQL指令全,执行效率高,所以Access后台数据库+ASP服务器端程序+客户端IE浏览器,是一个精练实用高效的组合模式.         在这种使用模式中,ASP程序无疑是最重要的,是沟通客户端和后台

Asp.net中带进度条的批量静态页生成

asp.net|静态 Asp.net中带进度条的批量静态页生成 namespace WDFROG.BLL...{    public delegate void CreateHtmlHandler(string fileName,string msg,int percent );    public class News    ...{        private const string C_ERR_MSG = "You have no rights!";        priva

在ASP.NET中访问DataGrid中所有控件的值

asp.net|datagrid|访问|控件 要在ASP.NET中访问DataGrid中所有控件的值,可以遍历DataGrid中每个控件:下面就是实现这一功能的aspx代码和脚本代码[VB.NET]: <%@ Page Language="vb" AutoEventWireup="false" Codebehind="DataGridAccessValues.aspx.vb" Inherits="aspxWeb.DataGridA