asp.net mvc中使用路由進行URL加密

代碼實例以下:html

namespace Test
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");  //原有代碼 
            routes.Add(new Route("testroute-{para1}.cshtml", new AjaxGetRouteHandler()));      //配置當前路由規則下的 IRouteHandler處理類
            routes.MapRoute(name: "testroute", url: "testroute-{para1}.cshtml");  //本身配置的全新路由規則,固然此處還沒有進行默認值配置。
            routes.MapRoute(        //MVC原有的默認路由配置規則  注意:這裏必須將默認的路由規則在全部路由註冊的最後一個進行註冊,不然會出現新規則不能解析到正確地址的問題
              name: "Default",
              url: "{controller}/{action}/{id}",
              defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
          );
        }

        public class AjaxGetRouteHandler : IRouteHandler
        {
            public IHttpHandler GetHttpHandler(RequestContext requestContext)
            {
//在當前類中能夠對用於處理請求的controller,action等個各個參數進行賦值操做,能夠在公開的地址欄對URL進行DES加密,這裏進行解密從而獲得真正的請求地址。 requestContext.RouteData.Values[
"controller"] = "home"; requestContext.RouteData.Values["action"] = "index";//requestContext.RouteData.Values["para1"].ToString().ToLower(); return new MvcHandler(requestContext); } } } }
相關文章
相關標籤/搜索