asp.net - 在 ASP.NET 网站中隐藏页面 URL

标签 asp.net url-rewriting

我构建了一个简单的 ASP.NET 网站,其中有一个菜单,其中所有页面 URL 都链接到每个菜单项。当我单击菜单项时,页面 URL 会出现在地址栏中,如“http://mywebsite/xyz/webform1.aspx”。我想隐藏此页面网址,而只显示网站的网址,例如所有页面的“http://mywebsite”。请告诉我如何实现这一目标。提前致谢。 如果这太复杂而难以实现,那么是否可以为每个页面显示一个假网址来代替实际网址?我不想在网址中显示实际的页面名称。

最佳答案

合理实现这一目标的唯一方法是使用通常称为“URL Cloaking”的方法,您可以通过使用框架集或 iframe 来包装页面,以便所有操作都发生在框架内,而无需更改浏览器 URL。

以一种不合理的方式来实现这一点,您需要编写一个自定义 View 引擎(如果您认真对待这一点,我建议使用 MVC),其中您使用像 session 这样的持久存储,因为它绑定(bind)到用户存储页面的“url”。在您的 View 引擎中,您将让它询问 session 以确定用户所在的位置以呈现应呈现的物理页面。

此后,您将需要实现您自己的所有 Redirect/RedirectToAction 功能,因为您将不再使用真正的重定向,但会在 session 中拥有像 RedirectLocation 这样的变量。

要做到这一点将是一项相当艰巨的任务,我建议不要这样做。如果您绝对认为需要单个 URL,请使用隐藏方法。或者正如 @Slaks 评论的那样,根本不要这样做。

关于asp.net - 在 ASP.NET 网站中隐藏页面 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4156233/

相关文章:

asp.net - 为什么使用 HTML5 uploader 时 Request.Files.Count 有时为 0?

php - 在 IIS7 上使用 web.config 删除 .php 扩展名

c - 在c文件操作中不要追加

php - SEO - 同时使用漂亮的 URL 和动态 URL

c# - 尝试返回 'select count (Id)' 时出现 System.IndexOutOfRangeException

asp.net - 在 Linux 上运行 ASP.Net 与标准的以 Microsoft 为中心的解决方案相比如何?

c# - 如何使用 .Net/Parse.com 发送 API 凭据和用户名/密码? (PHP 到 C#)

c# - .NET 查询得到不恰当的答案

apache - 使用 Jekyll 重写 .htaccess 子目录

apache - 如何重定向和显示具有相同 url 的内容?