0
登录后为什么不重定向我使用ASP.NET MVC,我登录动作我做:无法解释使用RedirectFromLogin
[AcceptVerbs("POST")]
public ActionResult Login(FormCollection form)
{
User validatedUser = // tests username/pwd here.
FormsAuthentication.RedirectFromLoginPage(
validatedUser.ID.ToString(), rememberMe);
if(String.IsNullOrEmpty(Request["ReturnUrl"]))
string redirectUrl = Request["ReturnUrl"];
if (!String.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
string redirectUrl = Request["ReturnUrl"];
}
我的网址是这样的,当我在登录页面:
http://localhost:56112/user/login?ReturnUrl=/admin/settings
这里有什么看起来不对?
我的web.config:
<authentication mode="Forms">
<forms loginUrl="/user/login"
protection="All"
timeout="30"
name="SomeCookie"
requireSSL="false"
slidingExpiration="true"
defaultUrl="default.aspx" />
你为什么建议反对它? (curiuos) – Blankman 2010-01-29 14:52:23
因为在ASP.NET MVC应用程序中执行重定向的推荐方式是从操作返回适当的ActionResult。 'RedirectFromLoginPage'几乎不可能进行单元测试。 – 2010-01-29 15:12:39
上述解决方案的工作原理,但为什么甚至调用FormsAuthentication.DefaultUrl。为什么不直接从代码重定向到控制器和操作。 “RedirectToAction”是一个更好的解决方案。 – 2013-07-22 13:52:52