访问具有多个子名称的同一网站

时间:2017-06-26 05:56:16

标签: asp.net iis web

我开发了一个asp.net应用程序。我将该应用程序作为IIS中的新网站托管。

我希望应用程序能够像下面那样工作,

  1. http://localhost:81/firm1/login
  2. http://localhost:81/firm2/login
  3. 上述所有3个电话都需要访问我的网站,我会使用名称' firm1',' firm2'进行一些处理。

    我不想创建多个网站/虚拟应用程序或子域。

2 个答案:

答案 0 :(得分:0)

在asp.net应用程序中查看Routing

这将允许您编写将接收所请求页面的URL的模块,拆分组件中的URL并从那里委托给您的控制器。

如果您已经设置了路由,则需要查看需要位于“公司”下面的所有路由。并修改它们映射到的URL。例如,如果你有

routes.MapPageRoute("LoginRoute", "/login", "~/login.aspx")

您可以将其更改为

routes.MapPageRoute("LoginRoute", "/{FIRM_CODE}/login", "~/login.aspx")

路由类将解析URL的第一部分并使其在控制器中可用

RouteData.values("FIRM_CODE")

从那里,您需要修改所有逻辑以处理公司特定的行为。您可能希望将此值存储在会话状态中,以便库可以访问当前公司等。

答案 1 :(得分:0)

您可以通过创建点击事件来使用从一个域到另一个域的重定向。但最好的方法是使用上一个答案中提到的路由。这是因为如果页面更改其名称或位置,则使用“路由”生成的超链接不需要更改URL。

以下内容将帮助您有效地使用路由: 1.定义不依赖于物理文件名的自定义URL模式。 2.使用标记或代码,根据路由URL参数值生成URL。 3.在路由页面中,使用标记或代码检索URL段中传递的值。

要将路由添加到网站,可以使用RouteCollection.MapPageRoute方法将它们添加到RouteTable类的静态Routes属性。