Перенаправить пользователя на страницу входа, если не авторизован в ASP. NET? - PullRequest
0 голосов
/ 24 марта 2020

Я знаю, что этот вопрос задавался раньше дюжину раз, но я не могу понять его. Я создаю веб-приложение в ASP. NET Framework v 4.7.2 и хочу отправить пользователя для входа на странице, если пользователь не аутентифицирован. Это код контроллера:

 [HttpPost]
    public ActionResult Authenticate(LogInModel lim)
    {
        LogInValidation.Validate(lim.UserName, lim.Password);
        if (!LogInValidation.ValidCredentials)
        {

            TempData["CustomError"] = "Username or password invalid !";
            return RedirectToAction("LogIn");
        }
        else
        {
            return RedirectToAction("Sesion");
        }
    }

    public ActionResult LogIn()
    {
        if (TempData["CustomError"] != null)
        {
            ModelState.AddModelError("CustomError", TempData["CustomError"].ToString());
        }
        return View();
    }

    public ActionResult Session()
    {
        return View();
    }

Я проверяю пароль пользователя и имя пользователя, и если они находятся в базе данных, я перенаправляю их в Session View. Если нет, я перенаправляю их на страницу входа в систему. Я хочу, чтобы пользователь мог получить доступ к странице сеанса, только если она аутентифицирована. Что я пробовал: Я вставил xml в web.config:

<authentication mode="Forms">
<forms loginUrl="~/Home/LogIn" timeout="2880" />

, и я также добавил атрибут [Authorize] в Session Action.But. теперь, если я пытаюсь войти, я всегда перенаправлен на страницу входа, а не на сессию. У меня также есть другие страницы, кроме страницы входа в систему, к которым пользователи могут получить доступ перед входом в систему, поэтому блокировка доступа всех пользователей ко всем страницам, кроме страницы входа в систему в начале, не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...