在asp.net mvc中重命名ReturnUrl文字

时间:2009-11-20 16:15:26

标签: c# asp.net-mvc routing

我把认证属性设置为:

filterContext.Result = new HttpUnauthorizedResult();

所以当我尝试访问

http://www.mysite.com/Forum/Polls 

我未经过身份验证我被重定向到:

http://www.mysite.com/Account/Log?ReturnUrl=%2FForum%2FPolls

我希望改为以下一行:

http://www.mysite.com/Account/Log?back=%2FForum%2FPolls

,所以代替'ReturnUrl'需要'回'。我可以在哪里摆脱这种行为。感谢。

2 个答案:

答案 0 :(得分:2)

您可以在EndRequest事件上重写“ReturnURL”。

这是示例代码。

protected void Application_EndRequest()
{
  if (Response.StatusCode != 301 && Response.StatusCode != 302) return;

  var targetUrl = Response.RedirectLocation.Replace("ReturnUrl","back");
  Response.RedirectLocation = targetUrl;
}

希望这段代码。

答案 1 :(得分:0)

看起来不像你。那来自System.Web.Security.FormsAuthentication.GetLoginPage() 如果你查看代码,你会发现它确实是一个硬编码的文字。至少在System.Web版本2.0.0.0