Что такое Thread.CurrentPrincipal и что он делает?
Что такое Thread.CurrentPrincipal
используется для? Как это помогает в Аутентификации и Авторизации приложения? Есть ли какие-либо статьи или ресурсы, которые помогут объяснить, что он делает?
1 ответ
Thread.CurrentPrincipal
Это способ, которым приложения.NET представляют идентификационные данные пользователя или учетной записи службы, выполняющей процесс.
Он может содержать одно или несколько удостоверений и позволяет приложению проверять, является ли принципал в роли через IsInRole
метод.
Большинство библиотек аутентификации в.NET проверяют учетные данные пользователя и устанавливают для этого статического свойства в классе Thread новый основной объект.
Разные потоки могут иметь разные принципалы, так как они могут обрабатывать запросы от разных пользователей (в веб-приложениях ASP.NET HttpContext.User
копируется в Thread.CurrentPrincipal
за каждый новый запрос)
Начиная с.NET 4.5 все основные классы являются производными от ClaimsPrincipal
, включающий проверку подлинности на основе утверждений.
ОБНОВЛЕНИЕ: Вот как выглядит WindowsPrincipal на моем устройстве dev: