Tôi có liên kết trên quan điểm dao cạo của tôi như thế này:chuyển hướng trở lại url sau khi đăng nhập
<a href="Home/Login?ReturnUrl=Disputes/Index"> disputes</a>
bên trong phương pháp hành động đăng nhập của tôi, tôi đang sử dụng này:
public ActionResult Login(string returnUrl) {
if (string.IsNullOrEmpty(returnUrl) && Request.UrlReferrer != null)
returnUrl = Server.UrlEncode(Request.UrlReferrer.PathAndQuery);
if (Url.IsLocalUrl(returnUrl) && !string.IsNullOrEmpty(returnUrl))
{
ViewBag.ReturnURL = returnUrl;
}
return View();
}
Theo quan điểm của tôi đang sử dụng này :
@Html.Hidden("returnUrl",@Request.QueryString)
sau đó trong bài phương pháp hành động:
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
if (membershipService.ValidateUser(model.UserName, model.Password, model.Type))
{
formsAuthenticationService.SignIn(model.UserName, model.RememberMe);
SetUserInfo(model.UserName);
string decodedUrl = "";
if (!string.IsNullOrEmpty(returnUrl))
decodedUrl = Server.UrlDecode(returnUrl);
if (Url.IsLocalUrl(decodedUrl))
return Redirect(decodedUrl);
else
return Redirect("Home", Index);
}
}
}
nó đang chuyển hướng đến: /Disputes/Index
nhưng nó sẽ chuyển đến myApp/Disputes/Index
trong đó url với chuỗi truy vấn giống như thế này. /myApp/Home/Login?ReturnUrl=/Disputes/Index
Tôi làm cách nào để giải quyết vấn đề này?
hãy thử sử dụng disputes (với dấu "/") hoặc thậm chí không thử chuỗi truy vấn để kiểm tra phương thức UrlReferrer. – Oliver
@Oliver: Tôi đã thử không có chuỗi truy vấn và nó không hoạt động ... – DotnetSparrow