【发布时间】:2014-02-22 02:54:33
【问题描述】:
MVC 4
剃须刀
C#
Forms.Authentication
我用[Authorize] 属性标记了一个控制器。它正确地将我带到登录页面。
在我的地址栏中,我看到 ReturnUrl 为 ?ReturnUrl=%2f
这是我的 [HttpPost] 方法。
[HttpPost]
public ActionResult Login(string ReturnUrl)
{
return Redirect(ReturnUrl);
}
但是,此方法中的ReturnUrl 为空。我的表单正确地指向帐户/登录作为帖子。
我在这里遗漏了什么,不应该用 %2f 填充 ReturnUrl 吗?
【问题讨论】:
-
这是一个post方法。 Post 方法不使用 URL 来获取数据。
-
@Jonesy 如何利用 ReturnUrl?这是通过 [Authorize] 属性自动完成的。
-
它们没有任何关系。 [Authorize] 验证用户是否已登录。
returnUrl只是一个参数。通常,如果用户尝试在未登录的情况下访问 [Authorize] 区域,他们将被重定向到登录页面,并带有returnUrl参数。当他们登录时,他们会被定向到他们试图去的任何地方 -
如果你新建一个MVC应用,应该已经实现了,你可以看看
-
@Jonesy 这是一个空的。如何伪造登录以测试 returnurl 是否有效?我试图删除 (string ReturnUrl) 但它不喜欢那样,因为我有另一个登录方法。只是想伪造一个登录,这样我就可以继续下一部分了。
标签: c# asp.net-mvc forms-authentication