AspNetBoilerplate (Бесплатная версия + .NET Core + Angular): перенаправить на домашнюю страницу со страницы входа, если пользователь уже вошел в систему - PullRequest
1 голос
/ 21 мая 2019

Как перенаправить со страницы входа на домашнюю страницу, если пользователь уже вошел в систему?В настоящее время:

a) если пользователь вошел в систему и если я ввел URL, например, "localhost:2222", пользователь автоматически перенаправляется на /app/home

b), если пользователь уже вошел в систему, ноон входит на страницу входа в систему с url, как, например, «localhost:2222/account/login». Пользователь не перенаправляется на главную страницу.Мы хотим, чтобы он также был перенаправлен на /app/home в этом сценарии.

Итак, пользователю необходимо сначала выйти из системы, если он хочет видеть страницу входа.

Мы используем AspNetBoileplrate .NET Core сУгловой (не премиум)

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Вы можете добавить свой чек в RouteGuard

Например:

if (this._sessionService.user && state.url === 'account/login') {
    this._router.navigate(['app/home']);
    return false;
}

https://github.com/aspnetboilerplate/module-zero-core-template/blob/164a5c9e28cb29383551d0f3310986ab43d0ceed/angular/src/shared/auth/auth-route-guard.ts#L21

0 голосов
/ 21 мая 2019

Вы можете проверить с помощью IHttpContextAccessor, как это

        public bool IsAuthenticated()
        {
            return _httpContextAccessor.HttpContext.User.Identity.IsAuthenticated;
        }

Таким образом, в своей учетной записи / логине вы можете проверить, является ли пользователь логином или нет, а если пользователь уже аутентифицирован, вы можете перенаправить пользователя на нужную вам страницу

        if (_userService.IsAuthenticated())
        {
            return RedirectToAction("Home", "Home");
        }
...