程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET MVC動態二級域名及DNS泛解析配置

ASP.NET MVC動態二級域名及DNS泛解析配置

編輯:關於ASP.NET

動態二級域名的實現:

應用場景:目前產品要實現SaaS功能,因為工作需要實現二級域名:www.{CompanyUrl}.xxx.com

假設產品主域名入口為:www.xxx.com

當a公司租戶登錄時:www.a.xxx.com

當b公司租戶登錄時: www.b.xxx.com

首先想到的是對Url的重寫:(網上有關於UrlRewrite的實現。在ASP.NET中這也是常用的手法。)

Route簡介:ASP.NET路由可以不用映射到網站特定文件的URL.由於該 URL 不必映射到文件,因此可以使用對用戶操作進行描述因而更易於被用戶理解的 URL。.NET Framework 3.5 SP1已經包含了ASP.NET Routing引擎。現在微軟已經在ASP.NET WebForms 4.0中增加了對Routing引擎更好的支持,它使用表達式構造器進行雙向Routing。
MVC 應用程序中的典型 URL 模式——來自MSDN

MVC 應用程序中用於路由的 URL 模式通常包括 {controller} 和 {action} 占位符。

當收到請求時,會將其路由到 UrlRoutingModule 對象,然後路由到 MvcHandler HTTP 處理程序。 MvcHandler HTTP 處理程序通過向 URL 中的控制器值添加後綴“Controller”以確定將處理請求的控制器的類型名稱,來確定要調用的控制器。URL 中的操作值確定要調用的操作方法。

MVC項目中添加路由,Global.asax 文件默認的MVC 路由的代碼。

默認配置:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );
    
}
protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    
    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
}

涉及類參考

類 說明 Route 表示 Web 窗體或 MVC 應用程序中的路由。 RouteBase 用作表示 ASP.NET 路由的所有類的基類。 RouteTable 存儲應用程序的路由。 RouteData 包含所請求路由的值。 RequestContext 包含有關對應於路由的 HTTP 請求的信息。 RouteValueDictionary 提供用於存儲路由 Constraints、Defaults 和 DataTokens 對象的方法。 VirtualPathData 提供用於從路由信息生成 URL 的方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved