Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
WPF is not thread-safe. This means that all UI work must be done on the single UI thread. Nevertheless, WPF does use background threads behind the scenes. The security infrastructure in .NET is driven off the current principal object, which is associated with a specific thread. This means that you can run into cases where your code is running on a thread that doesn't have the right principal.
This issue only applies if you're using custom authentication. If you're using Windows authentication, then all threads will use the WindowsPrincipal for the user logged into the workstation, and there's no issue.