ASP.NET MVC 3 FormsAuthentication ReturnURL

时间:2011-03-29 17:00:24

标签: asp.net-mvc

我在我的MVC 3应用程序中使用表单身份验证,并且我的返回URL有问题。

当我在Home控制器上标记一个动作<Authorize>时,它会重定向到登录页面并且有效,但返回的URL是/,因此当它重定向时,它会重定向到根目录当前网址Authorize

所以网址是这样的:

http://localhost/ - Controller = Home - Action = Index

http://localhost/Authentication/LogOn

我最终得到了这个:http://localhost/Authentication/LogOn?ReturnURL=~%2F,我需要回到http://localhost/

帮助!! :)

2 个答案:

答案 0 :(得分:2)

尝试将您的帐户控制器LogOn操作更改为以下内容:

[HttpPost]
    public ActionResult LogOn(LogOnModel model, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            if (MembershipService.ValidateUser(model.UserName, model.Password))
            {
                FormsService.SignIn(model.UserName, model.RememberMe);

                return RedirectToAction("Index", "Home");

            }
            else
            {
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
            }
        }

        // If we got this far, something failed, redisplay form
        return View(model);

答案 1 :(得分:-1)

http://localhost/Authentication/LogOn?ReturnURL=~%2F, 这意味着主页网址重复了