這個問題已經困擾了我數個月,實在是覺得很厭煩,每次開啟 Visual Studio 2022 就會不斷的提醒我要不斷登入,然後還是登入不成功,上網找了非常多類似的問題,但沒有一個是有解決的。這篇文章我就來說說這個來龍去脈,並提供一個實證有效的解決方法。

問題說明
這個問題是這樣的,當我們開啟 Visual Studio 2022 並嘗試登入自己的微軟帳戶(Microsoft Account),例如像 Hotmail 帳號之類的。Visual Studio 2022 會先下載該帳號所有有加入的 Azure Active Directory (Azure AD) 組織 (Tenant),然後逐一取得不同 Tenant (組織) 下的訂用帳戶。而這個過程如果遇到任何一個 Tenant 沒有存取權限,就會遇到這個問題。以下就是發生問題的重現步驟:
-
先開啟 Visual Studio 2022 並點擊右上角的 Sign in 登入

-
輸入你的微軟帳戶(Microsoft Account)(個人帳戶)
這個畫面其實跑得是 Internet Explorer 瀏覽器喔,真的很扯!😅

-
因為我有啟用 MFA 驗證,所以要到手機的 Microsoft Authenticator 授權登入


-
此時 Visual Studio 2022 的登入視窗會關閉,會讓你感覺已經登入成功,但隨即會立刻再開啟一次視窗,叫你再登入一次!

-
理論上不會再需要登入了,但是我的 VS2022 卻會再次跳出視窗,叫我再登入一次,就時會出現錯誤了!
他會提示我,我的帳號並沒有出現在 OOOOOO
的 tenant (租戶) (組織) 帳號下,所以無法存取 Visual Studio 應用程式。

重點是,所謂 OOOOOO
這個 Tenant 我早就沒用了,那是之前曾經有一小段時間幫客戶代管過,他們後來自己拿回去管,然後把我的帳號從該 Tenant 的 Azure Active Directory 移除。理論上,我應該是沒有任何權限再看到他們的任何資料才對,但是他們很有可能是沒有把我從 Subscription (訂用帳戶) 的權限中移除,導致我還看的到訂用帳戶,但因為我不在他們的 Azure AD 中,所以其實還是沒有權限,但卻看的到他們的訂用帳戶與資源群組清單,裡面有多少資源我是看不到的,就是一個這麼尷尬的狀況!
這很明顯是 Azure AD 的問題,我問了微軟技術支援中心,他們也不知道為什麼會這樣,正在積極幫我處理此議題。
解決方案
這個問題卡了我數月之久,每次看到都感覺厭煩,今天早上在家立誓要找到解法,沒有好心情怎麼能把 Visual Studio 用好呢!😠
最後我找到了解法,做出了兩項 [工具] -> [選項] 的設定調整:
-
Environment
> Accounts
> Add and reauthenticate accounts using:
這裡我直接把 Internet Explorer (IE) 瀏覽器換掉,直接改用系統內建的瀏覽器來進行登入!

-
Environment
> Accounts
> Authenticate across all Azure Active Directories when adding account
這個是最關鍵的,因為該選項預設勾選,他會自動將你的帳號所有可以存取的 Azure Active Directory (Tenant) 全部都輪流驗證過一遍,這是為何你會一直不斷出現登入畫面的原因!一般來說,不應該一直不斷重複登入,但因為我有些「還看的到的 Azure AD 組織」已經「沒有權限」了,所以才會一直跳出登入畫面!

只要設定完成,每次 Visual Studio 2022 開啟後就不會一直叫你登入了!
徹底清空 Visual Studio 2022 的認證快取
如果你還是遇到問題,那可能會想要徹底清空 Visual Studio 2022 的認證快取,請依照以下步驟操作:
-
關閉 Visual Studio 2022 開發工具
-
找到 %LocalAppData%\.IdentityService
目錄
-
刪除 %LocalAppData%\.IdentityService
資料夾
-
重開 Visual Studio 2022 之後會自動將該資料夾重建
選擇你要在 Visual Studio 2022 裡面使用哪些訂用帳戶
但由於我們選擇了不要在所有 Azure Active Directories 重新認證,這意味的你可能要自己選擇有哪些訂閱要加入到 Visual Studio 2022 之中,請參考下圖進行操作即可:
-
進入帳戶設定 (Account settings)

-
選則 [Multiple] Microsoft account
的 Apply filter...

-
選擇你會用到的訂用帳戶

其他技術筆記
相關連結