我在MVC3中使用Forms身份验证。出于某种原因,returnUrl
似乎正在复制网址的一部分。例如:
http://localhost/customer/?filter=1&sort=3
变为:
RETURNURL = /本地主机/客户/过滤器= 1&安培;排序= 3及过滤器= 1&安培;排序= 3
正如您所看到的,由于某种原因,其他参数正在重复。有人知道修复吗?
答案 0 :(得分:0)
当returnUrl
通过系统时,值得观察?returnUrl=
。在某些时候,有些事情是在最后添加第二组参数。可能是这些参数被添加到当前URL的末尾,当前URL中已经有returnUrl
参数?如果是这种情况,可能值得确保编码Url.Encode(returnUrl)
。例如{{1}}在坚持到底之前。{/ p>
答案 1 :(得分:0)
为了使其正常工作,您必须执行以下操作:
In order to subscribe for the event you have to < a style=" background-color:Black; color:White; font-weight:bold;" href="@Url.Content("~/Account/Login?returnUrl=/Events/Index")">Login< /a> or create a New Account.
public ActionResult Login(LogOnModel model,string returnUrl) { if(ModelState.IsValid) { if(Membership.ValidateUser(model.UserName,model.Password)) { MembershipUser user = Membership.GetUser(model.UserName);
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Account");
}
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
}
return View(model);
}