asp.net – 什么是Thread.CurrentPrincipal,它有什么作用?

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

解决方法

Thread.CurrentPrincipal是.NET应用程序表示运行该进程的用户或服务帐户的标识的方式.

它可以包含一个或多个标识,并允许应用程序通过IsInRole方法检查主体是否处于角色中.

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

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

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

更新:
这就是我的开发盒上的WindowsPrincipal:

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...