Returnurl в MVC-это всегда имеет значение null, после повторного входа в систему от сессии сбросить
Я работаю над приложением MVC, которое имеет аутентификацию входа в систему и тайм-аут через некоторое время после входа в систему. Поэтому я хочу иметь возможность войти в систему и вернуться на ту страницу, на которой я был, а не на статическую домашнюю страницу.
Каждый раз, когда меня выгоняют, я получаю "учетную запись/логин?Returnurl в = ... "в моем браузере, но мой отладчик внутри метода Login ActionResult post всегда говорит, что мой returnUrl равен нулю. Я устал от следующего метода, до этого я пробовал и другие методы, но ни один из них не сработал. Так что я действительно застрял пожалуйста помогите:
Что я уже пробовал:
"AccountController.cs" :
public sealed class AccountController : BaseController { //Login prompt // GET: /Account/Login [AllowAnonymous] public ActionResult Login() { return View(); } //Login processing(authentication) // POST: /Account/Login [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login( LoginViewModel model, string returnUrl) { if ( ModelState.IsValid ) { var authenticated = AuthenticationProvider.Authenticate( model.UserName, model.Password, HttpContext ); if( authenticated ) { if (Url.IsLocalUrl(returnUrl)) { ViewBag.ReturnUrl = returnUrl; return Redirect(returnUrl); } } ModelState.AddModelError( "", "Invalid username or password." ); } return View( model ); }
Форма "Loging.cshtml" :
@using (Html.BeginForm("Login", "Account", FormMethod.Post, new { ReturnUrl = Request.QueryString["ReturnUrl"] })) { ....
"web.config":
<modules> <remove name="FormsAuthentication" /> <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" /> </modules>
MadMyche
Как долго длится "через некоторое время после входа в систему"? Вы просматриваете сайт или смотрите на страницу в течение этого времени?