C# 授权属性ReturnUrl未按预期工作

C# 授权属性ReturnUrl未按预期工作,c#,asp.net-mvc,forms-authentication,C#,Asp.net Mvc,Forms Authentication,MVC4 剃刀 C# 表单.身份验证 我用[Authorize]属性标记了一个控制器。它正确地将我带到登录页面 在我的地址栏中,我看到ReturnUrl为?ReturnUrl=%2f 这是我的[HttpPost]方法 [HttpPost] public ActionResult Login(string ReturnUrl) { return Redirect(ReturnUrl); } 但是,此方法中的ReturnUrl为空。我的表单正确地指向帐户/登录作为帖子 我在这里遗漏了什么

MVC4
剃刀
C#
表单.身份验证

我用
[Authorize]
属性标记了一个控制器。它正确地将我带到登录页面

在我的地址栏中,我看到ReturnUrl为
?ReturnUrl=%2f

这是我的[HttpPost]方法

[HttpPost]
public ActionResult Login(string ReturnUrl)
{
     return Redirect(ReturnUrl);
}
但是,此方法中的
ReturnUrl
为空。我的表单正确地指向帐户/登录作为帖子


我在这里遗漏了什么,ReturnUrl不应该用%2f填充吗?

提交时,您应该在表单中传递ReturnUrl数据

@Html.BeginForm("Login", "Account", new { ReturnUrl = "data" }, FormMethod.Post, new {}){}

这是一种post方法。Post方法不使用URL获取数据。@Jonesy我如何利用ReturnUrl?这是通过[Authorize]属性自动完成的。它们之间没有任何关联。[授权]验证用户是否已登录。
returnUrl
只是一个参数。通常,如果用户试图在不登录的情况下访问[Authorize]'d区域,他们将被重定向到登录页面,并带有
returnUrl
参数。当他们登录时,他们会被引导到他们试图到达的任何地方。如果你创建了一个新的MVC应用程序,它应该已经实现了,你可以检查它out@Jonesy这是一个空的。如何伪造登录以测试returnurl是否正常工作?我试图删除(stringreturnurl),但它不喜欢这样,因为我有另一个登录方法。只是想假装登录,这样我就可以进入下一部分。我想这让我更接近了,但是nots returnUrl是“数据”,我应该在那里放什么来获取returnUrl?你想重定向你作为参数传递的returnUrl,它将作为你的参数被动作所采用,然后您可以返回它。记住,如果您不注册cookie,您将始终被重定向到登录页面。因此,我将其保留为
“data”
,它将知道如何将数据转换为我网站上的任何页面。不,数据它是一个静态值,你可以保存你的值,然后重定向到它当你登录,看看这个链接,我希望它会帮助你