Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular canActivate-减慢应用程序的运行速度。什么时候打电话?_Angular_Performance_Canactivate - Fatal编程技术网

Angular canActivate-减慢应用程序的运行速度。什么时候打电话?

Angular canActivate-减慢应用程序的运行速度。什么时候打电话?,angular,performance,canactivate,Angular,Performance,Canactivate,我有一个带有.net核心后端的angular应用程序。我正在使用windows active directory进行用户授权/标识。一切正常,但我感觉应用程序运行缓慢。。。我已经确认发生这种情况,因为我正在检查每个组件负载上的用户是否有效 canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> { if (this.auth.is

我有一个带有.net核心后端的angular应用程序。我正在使用windows active directory进行用户授权/标识。一切正常,但我感觉应用程序运行缓慢。。。我已经确认发生这种情况,因为我正在检查每个组件负载上的用户是否有效

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> {
    if (this.auth.isAuthenticated) {
       return true;
    } else {
       return this.router.parseUrl('/notAuthorized');
    }
});
canActivate(路由:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察{
if(this.auth.isAuthenticated){
返回true;
}否则{
返回此.router.parseUrl('/notAuthorized');
}
});
“isAuthenticated”是一种调用后端并检查用户是否有效的方法


那么,关于处理这种情况的最佳做法有什么建议吗?

由于每个路由上都有服务器调用,因此速度减慢,您可以将AuthSession存储在会话存储中,并检查会话是否存在

“isAuthenticated”是一种调用后端并检查用户是否有效的方法
,这就是问题所在。如果您使用的是基于令牌的身份验证,只需将令牌存储在本地分拣中,并检查令牌是否可用。每次调用canActivate时都不需要检查后端。您所要做的就是为
401
创建一个错误拦截器并相应地注销。请查看文章:谢谢,但我使用的是windows active directory,所以我不确定如何使用AuthSession。。。