VB.NET で My.Settings.Default にアクセスすると、スレッドの 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 を設定する前に、プロパティに触れて初期化することをお勧めします。それを行うことで望ましくない副作用はありますか?