Angular 2 中的 Active Directory 注销而不重定向到默认 Microsoft 注销页面
Active Directory logging out without a redirect to Default Microsoft Logout Page in Angular 2
我已经实现了 Angular 2 多租户应用程序。
我可以通过使用注销活动目录
下面的方法
logout() {
this.context.logOut();
}
但现在我必须执行注销 Active Directory 用户而不去 Microsoft 注销 page.The Active Directory 用户注销而不去注销页面,如下图所示。
用户注销不像上面那样image.I不想使用内置注销function.I已经尝试了下面两种不同的方法
this.context.clearCacheForResource(this.userInfo.userName);
this.context.clearCache();
但是用户信息不清楚。
当我清除浏览器的缓存时,它正在工作。
感谢任何答案。
提前致谢......!
你的方法只清除本地 cache/storage ,它不会清除任何 session/cookie hold on azure ad,由于 cookie 仍然存在,可能会发生静默身份验证。如果你想清除那,那么内置的注销应该是要使用的。
这里是 并提供了实现静默注销的解决方法:
You could probably try to implement the silent logout(probably using iframe, this will prevent the ux from displaying), and then call clearCache to clear the localstorage/sessionstorage
我已经使用下面的代码解决了这个问题
import { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';
@Component({
selector: 'auth-container',
模板:<iframe class="embed-responsive-item" *ngIf="show" width="0" height="0" [src]="url" allowfullscreen></iframe>
,})
export class Auth implements OnInit {
public show = false;
constructor(private sanitizer: DomSanitizer) {
this.url = sanitizer.bypassSecurityTrustResourceUrl('https://login.microsoftonline.com/common/oauth2/logout?post_logout_redirect_uri=' + window.location.origin); }}
这里我根据需要隐藏和显示 iframe。
感谢@Nan
我刚遇到同样的问题,我花了一些时间才找到 answer in MSAL.js documentation:
export class AuthenticationService {
constructor(
private msalService: MsalService,
) { }
logoutWithoutRedirect(): void {
this.msalService.logoutRedirect({
// Return false if you would like to stop navigation after local logout
onRedirectNavigate: () => false
})
}
}
我已经实现了 Angular 2 多租户应用程序。 我可以通过使用注销活动目录 下面的方法
logout() {
this.context.logOut();
}
但现在我必须执行注销 Active Directory 用户而不去 Microsoft 注销 page.The Active Directory 用户注销而不去注销页面,如下图所示。
用户注销不像上面那样image.I不想使用内置注销function.I已经尝试了下面两种不同的方法
this.context.clearCacheForResource(this.userInfo.userName);
this.context.clearCache();
但是用户信息不清楚。 当我清除浏览器的缓存时,它正在工作。
感谢任何答案。
提前致谢......!
你的方法只清除本地 cache/storage ,它不会清除任何 session/cookie hold on azure ad,由于 cookie 仍然存在,可能会发生静默身份验证。如果你想清除那,那么内置的注销应该是要使用的。
这里是
You could probably try to implement the silent logout(probably using iframe, this will prevent the ux from displaying), and then call clearCache to clear the localstorage/sessionstorage
我已经使用下面的代码解决了这个问题
import { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';
@Component({
selector: 'auth-container',
模板:<iframe class="embed-responsive-item" *ngIf="show" width="0" height="0" [src]="url" allowfullscreen></iframe>
,})
export class Auth implements OnInit {
public show = false;
constructor(private sanitizer: DomSanitizer) {
this.url = sanitizer.bypassSecurityTrustResourceUrl('https://login.microsoftonline.com/common/oauth2/logout?post_logout_redirect_uri=' + window.location.origin); }}
这里我根据需要隐藏和显示 iframe。
感谢@Nan
我刚遇到同样的问题,我花了一些时间才找到 answer in MSAL.js documentation:
export class AuthenticationService {
constructor(
private msalService: MsalService,
) { }
logoutWithoutRedirect(): void {
this.msalService.logoutRedirect({
// Return false if you would like to stop navigation after local logout
onRedirectNavigate: () => false
})
}
}