- 자동 로그인(EnableAutoLogin) 시 WebView2 프로필의 SSO 세션 쿠키를 먼저 정리한다.
baronsso.dat이 없는데도 남은 세션 쿠키로 authorize가 즉시 통과되어
로그인 창이 뜨지 않고 바로 로그인되던 문제를 막는다.
- 주기 인증은 RefreshTokenDestroyed 콜백이 설정된 경우에만 수행한다.
- NuGet 패키지 메타데이터(Version 1.0.1, PackageId, Authors/Company) 추가.
- 샘플 앱에 PostLogoutRedirectUri 지정 및 불필요 using 정리.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- LoginWindow.EndSessionAsync 추가: 1×1 화면 밖 WebView2로 end_session을 수행해
로그아웃 시 창이나 네비게이션 에러 페이지(ERR_ABORTED 등)가 보이지 않게 함.
post_logout_redirect_uri 복귀를 NavigationStarting에서 가로채 종료하고,
복귀를 못 가로채도 timeout 후 조용히 반환.
- SsoClient.LogoutAsync: 보이는 AuthenticateAsync 대신 EndSessionAsync 사용.
- BaronSSO.SignOutAsync: CurrentUser가 null이면 파일에서 로드 후 로그아웃.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- LoginWindow: 로그인/로그아웃/쿠키삭제를 전용 STA 스레드(자체 Dispatcher 펌프)에서 실행
→ SignIn/SignInAsync가 MTA/STA 어느 스레드에서 호출돼도 동작 (RunOnDedicatedUiThreadAsync, AuthenticateAsync)
- SsoClient: 로그인/로그아웃 창을 AuthenticateAsync로 호출, 크로스스레드 Owner 제거
- BaronSSO: SignIn/SignOut을 Task.Run(...).GetAwaiter().GetResult()로 정리, SignInAsync 데드락 주석 추가
- UserInfo: private set 프로퍼티에 [JsonInclude] 적용 → FromSsoFile 역직렬화 복원 정상화, LastAuthTime [JsonIgnore]
- AuthTest 샘플 프로젝트 추가
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>