30

Thread.CurrentPrincipal用来做什么的?它对应用程序的身份验证和授权有何帮助?是否有任何文章或资源可以帮助解释它的作用?

4

1 回答 1

28

Thread.CurrentPrincipal是 .NET 应用程序表示运行进程的用户或服务帐户身份的方式。

IsInRole它可以持有一个或多个身份,并允许应用程序通过该方法检查主体是否处于角色中。

.NET 中的大多数身份验证库将验证用户的凭据并将 Thread 类上的此静态属性设置为新的主体对象。

不同的线程可以有不同的主体,因为它们可能正在处理来自不同用户的请求(在 ASP.NET 中,Web 应用程序HttpContext.User被复制到Thread.CurrentPrincipal每个新请求中)

从 .NET 4.5 开始,所有主体类都派生自ClaimsPrincipal,从而启用基于声明的身份验证。

更新: 这是我的开发箱上的 WindowsPrincipal 的样子: 在此处输入图像描述

于 2016-01-23T08:28:28.880 回答