【问题标题】:Hiding routes in ASP.Net MVC 4在 ASP.Net MVC 4 中隐藏路由
【发布时间】:2015-07-18 16:19:48
【问题描述】:

在我的应用程序中,我有各种 ViewsControllers

所以很自然地,当一个人浏览页面时,URL 会根据ControllerView 而改变;

例如

  • http://example.com/home/index
  • http://example.com/account/register
  • http://example.com/product/newproduct

但我想将地址栏中的ControllerView 名称保密,换句话说,当导航时,地址栏总是显示http://example.com

有谁知道如何隐藏这些路线?我正在使用ASP.NET MVC 4 C# 应用程序。

基本上只需要服务器来跟踪页面。

【问题讨论】:

  • 我的问题是为什么。它以这种方式开发是有原因的,您没有给出任何需要隐藏它们的理由。
  • 我在考虑隐藏它,然后由服务器处理它。这是一个我什至不确定是否可行的想法。这篇文章从外观上证实了这一点。我认为它是另一层安全性。我对 MVC 还是很陌生,因此您显然认为这个问题是一个愚蠢的问题。
  • 不,不是一个愚蠢的问题。只是从字面上问为什么。所以这是一个安全问题。唯一的问题是任何拥有fiddler 的人都可以看到请求的样子。但是,当使用SSL the url is encrypted 时。但是任何连接(客户端)的人仍然可以使用 IE、FF、Chrome 等中的可用 DEV 工具查看完整请求。
  • 啊,好吧,那么这很公平,如果它可以被客户端的 Web 浏览器公开,那么考虑混淆 Route 将是毫无意义的浪费时间。感谢您的输入。
  • 我认为你应该选择 Single-Page-Application

标签: c# asp.net-mvc-4 routes


【解决方案1】:

不幸的是,我相信这不会是一件容易的事。 MVC 路由引擎需要某些信息才能将请求传递到屏幕,并且在映射路由时会处理这些信息。此外,您可以想象如果浏览器允许站点临时更改地址,人们可能会遇到什么样的麻烦。看看这个视频。详细介绍一下路由引擎的工作原理还是蛮不错的Pluralsight

【讨论】:

  • 不错的视频,我有点理解它的工作原理,我只是想它;没有人可以使用 URL 来导航,那么只能使用 UI 控件来导航页面。基本上让服务器处理正在请求的页面的状态等。 ActionLink 传入ControllerAction。然后控制器将某些内容作为页面返回,但在 URL 中它基本上隐藏了返回的内容。
  • @MikeSmithDev yehp 在得到这个答案之后才意识到这一点,哈哈
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 2016-09-20
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
  • 2014-05-25
  • 1970-01-01
相关资源
最近更新 更多