2016-01-22 182 views

回答

3

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

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

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

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

由于.NET 4.5,所有主要的类派生自ClaimsPrincipal,启用基于声明的身份验证。

UPDATE: 这是一个WindowsPrincipal看起来像我的dev的盒子: enter image description here

+0

假设如果一个用户登录到使用Windows身份验证的应用程序。我们如何表示Thread.CurrentPrincipal。它包含的属性都是什么。 – user1844634

+0

Thread.CurrentPrincipal将填充一个WindowsPrincipal对象。它包含诸如UPN之类的其他声明以及校长是其成员的组。 – MvdD

+0

请您详细说明一下请 – user1844634

相关问题