【问题标题】:ASP.Net Not Authorized user URL and URLRewriteASP.Net 未授权用户 URL 和 URLRewrite
【发布时间】:2014-09-09 17:53:38
【问题描述】:

假设我有一个网站www.example.com,这个网站仅供授权用户使用,所以当用户请求一个名为

的页面时,我有一个名为Login.aspx 的登录页面
www.example.com/books/55

对于授权用户来说,它工作正常,但是当非授权用户请求此页面时,用户将显示为

www.example.com/Login.aspx?ReturnUrl=%2fbooks%2f55

我想让这个 url 更友好,以保持显示 url 就像用户输入它一样

www.example.com/books/55

并显示登录页面(facebook 行为)或以其他方式使此 url 更友好。

【问题讨论】:

  • 这是标准行为,我不相信你可以改变它,你不应该想要。返回 URL 的 URL 编码正确 en.wikipedia.org/wiki/Percent-encoding
  • @BenRobinson 我知道这是一种正常的行为,但是有什么方法可以使用 URLRewite 来改变它或让它变得更友好,我喜欢 facebook 的行为,只需要求任何带有 wut 登录的 facebook 页面,你就会看到它

标签: c# asp.net iis-7 url-rewriting webforms


【解决方案1】:

是的,可以进行 url 重写。 在 Application_Start 下的全局文件中,

 RouteTable.Routes.MapPageRoute("AdminLoginRoute", "Admin/Login", "~/Admin/AdminLogin.aspx");

例如,您有一个名为 Admin/AdminLogin.aspx 的页面

上面的代码会将名字替换为Admin/Login

您的代码中的 Books/55 似乎是动态的。 您可以通过传递动态参数来获取动态 url,例如:

 RouteTable.Routes.MapPageRoute("AdminLoginRoute", "Admin/Login/{Id}", "~/Admin/AdminLogin.aspx");

这里的 ID 是动态的。

【讨论】:

  • 据我了解,OP 并未询问如何更改页面路由,而是希望查询字符串参数不被 URL 编码。
  • 我想要的是,我想保留未授权用户的 url 作为其请求,或者在没有任何编码的情况下使其更友好我尝试使用你的代码@Manu,但这对我不起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-07
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 2022-08-19
  • 2012-02-05
相关资源
最近更新 更多