AspNetBoilerplate(免费版+ .NET Core + Angular):如果用户已经登录,则从登录页面重定向到首页

时间:2019-05-21 09:31:43

标签: .net angular aspnetboilerplate

如果用户已经登录,如何从登录页面重定向到主页? 当前:

a)如果用户已登录,并且我输入的网址是“ localhost:2222”,则用户会自动重定向到/app/home

b)如果用户已经登录,但是他正在使用url进入登录页面(例如“ localhost:2222/account/login”),则该用户不会重定向到首页。我们希望在这种情况下也将他重定向到/app/home

因此,如果用户想查看登录页面,则需要先注销。

我们将AspNetBoileplrate .NET Core与Angular(不是Premium)一起使用

2 个答案:

答案 0 :(得分:0)

您可以像这样使用IHttpContextAccessor进行检查

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

因此,在您的帐户/登录中,您可以检查用户是否登录,并且如果用户已经通过身份验证,则可以将用户重定向到所需的页面

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

答案 1 :(得分:0)

您可以在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