我正在尝试让我的网站在成功登录时运行重定向。我把所有会员路线都放在一个区域内。
/membership/login/index
/membership/profile/index
我已经尝试了以下两个尝试让它工作 - 登录成功但重定向除了更改地址之外什么都不做。我尝试了以下但是他们都得出了相同的结果
[HttpPost]
public ActionResult Index(Login loginViewModel)
{
...
return RedirectToRoute(new { Area = "Membership",
Controller = "Profile", Action="Index" });
}
导致此
http://mysite.com/Membership/Login?ReturnUrl=%2fmembership%2fProfile
然后我的下一步努力
return RedirectToAction("Index", "Profile", new { Area = "Membership" });
....
http://mysite.com/Membership/Login?ReturnUrl=%2fmembership%2fProfile
最后
return RedirectToAction("Index", "Profile");
...
http://mysite.com/Membership/Login?ReturnUrl=%2fmembership%2fProfile
答案 0 :(得分:1)
您当然可以重定向HTTP帖子(您不能做的是将其重定向,然后期望重定向的响应也是POST)。这里发生的是您成功将请求重定向到正确的页面,但有问题的页面需要身份验证,并且由于用户未经过身份验证,请求将再次发送回登录页面。您应该在设置Cookie后重定向(或执行您正在执行的任何身份验证机制)。
答案 1 :(得分:1)
您必须在重定向之前保存Cookie。
FormsAuthentication.SetAuthCookie("UserName or somthing",false/true);
return RedirectToAction("Index", "Profile", new { Area = "Membership" });
现在它会起作用..