1
看來,當你訪問VB.NET中的My.Settings.Default時,你的線程的CurrentPrincipal發生改變。考慮下面的代碼。VB.NET - 訪問My.MySettings.Default更改Thread.CurrentPrincipal?
Dim name = "admin"
Dim user = Membership.GetUser(name)
Dim identity = New GenericIdentity(user.UserName)
Dim principal = New RolePrincipal(identity)
System.Threading.Thread.CurrentPrincipal = principal
Debug.WriteLine(System.Threading.Thread.CurrentPrincipal.Identity.Name)
Dim x = My.MySettings.Default
Debug.WriteLine(System.Threading.Thread.CurrentPrincipal.Identity.Name)
這段代碼的輸出是
管理
MYDOMAIN \ MyUserName輸入
這個預期?它記錄在任何地方嗎?我找不到任何參考。
它似乎也只在第一次訪問My.MySettings.Default時這樣做,這意味着解決方法可能是在嘗試設置線程的CurrentPrincipal之前觸摸該屬性對其進行初始化。會有什麼不良的副作用嗎?