目录
第一步:创建项目
C#,Mvc4,基本
第二步:创建下载资源
在Content目录下,创建一个downlaod/a/b/ 目录,最后再在b目录下创建一个cs.zip压缩包文件,如下图所示:
第三步:修改RouteConfig.cs文件
在RouteConfig.cs文件的下方,添加下方的两个路由:
routes.MapRoute(
name: "ForbiddenDownload",
url: "Content/download/a/b/{id}.zip",
defaults: new { controller = "Home", action = "Alert", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "ForgeHtml",
url: "{controller}/{action}/{id}.html",
defaults: new { controller = "Home", action = "MakeHtml", id = UrlParameter.Optional }
);
第四步:修改全局文件Global.asax.cs文件
在Applicaiton_Start事件的前面添加如下代码
RouteTable.Routes.RouteExistingFiles = true;
第五步:创建控制器
HomeController.cs 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcRoute.Controllers
{
public class HomeController : Controller
{
//
// GET: /First/
public ActionResult Index()
{
return View();
}
public ActionResult Alert()
{
return View();
}
public ActionResult GetZip()
{
return File(Server.MapPath("~/Content/download/a/b/cs.zip"),"application/x-rar-compressed","MyCS.zip");
}
public ActionResult MakeHtml()
{
return View();
}
}
}
第六步:创建视图
创建上述所有Action对应的默认csthml文件
Index.cshtml:
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<h2><a href="/Content/download/a/b/cs.zip">非法下载压缩包</a></h2>
<h2><a href="/Home/GetZip">合法下载压缩包</a></h2>
Alert.csthml:
@{
ViewBag.Title = "Alert";
}
<h2>Alert:禁止直接访问下载资源</h2>
MakeHtml:
@{
ViewBag.Title = "ForgeHtml";
}
<h2>伪静态页面</h2>
第七步:测试结果
小结
1.Route技术可以完成用户请求的安全审查及导航作用.
2.Route技术可以对旧的或不规范的URL重新整理规划.
3.Route技术在download方面实现安全下载,可以防止盗链等问题.