从特定页面登录后重定向到特定控制器

时间:2013-11-26 14:27:18

标签: asp.net-mvc

我正在使用默认的MVC应用程序,并且我已开始向某些控制器添加 [授权] ,以便尝试访问它们的用户将获得登录屏幕,然后在身份验证时重定向。

我无法弄清楚的一件事是如何处理具有匿名访问权限的控制器,尤其是我的 HomeController 。在此页面中,当用户单击“登录”并进行身份验证并再次将用户重定向回HomeController时。

我想要发生的是当用户仅在此页面上单击登录时,是否将用户发送到登录页面,并且在成功进行身份验证后,它们将被定向到另一个控制器。

我知道登录布局在_LoginPartial.cshtml中,但我不确定如何如果我这是添加此功能的地方。

修改

我想我可以使用ViewBag对象并将ReturnURL传递给布局,并使用@if语句显示不同的actionlink。如何修改以下内容以指定returnurl?

@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })

1 个答案:

答案 0 :(得分:0)

要将用户定向到另一个操作/控制器,您可以在AccountController中编辑“[HttpPost],LogOn”操作。例如使用:

return RedirectToAction("Index", "SomeOtherControllerName")

<强>更新

如果你想特别设置returnUrl,就像在你的例子中一样,它完成了:

@Html.ActionLink("Log in", "Login", "Account", new { returnUrl = "/Account/SomeAction" }, new { id = "loginLink" })