我有一个使用默认路由的MVC应用:{area} / {controller} / {action}。它位于反向代理(IBM webseal,如果它很重要)的后面,为我进行身份验证。
我需要让我的应用程序位于不同的反向代理后面,这将导致视图以不同方式呈现。这是一个例子
我有一条路线:
/ RS /合同/ ContractDetails。
从反向代理#1后面呈现某种观点。
反向代理#2使用不同的区域,称为代理。它只有一个URL:
/剂/家用/ agentaccess
操作方法AgentAccess设置一些标志,导致使用不同的布局,并最终重定向到上面列出的/ RS / Contract / ContractDetails路由。
到目前为止,它非常简单。但是,我被告知,当通过反向代理#2访问我的网站时,出于安全考虑,我只能访问/ agent区域。
显然,代码重复是不可能的。我不想在每个区域复制相同的逻辑和视图。我认为,我想做的是类似于旧的Server.Execute方法。我想请求/ agent / home / agentaccess,并执行/ RS / Contract / ContractDetails。我可以使用IController.Execute(),但这对我来说似乎不是MVC-ish或优雅。还有更好的东西吗?磁带进入路由系统以影响所请求路由匹配的操作方法的方法将是理想的。或者欢迎任何其他想法。
谢谢!
杰夫