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


代碼實例如下:

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); } } } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM