C# · 12月 29, 2021

c# – ClaimPrincipal的作用是什么,为什么它有多个标识?

我正在根据应用程序的声明(依赖方)了解.NET背后的安全模型.

我知道有两个主要课程:@H_419_3@

ClaimsPrincipal – 运行过程的安全上下文
> IdentityPrincipal – 存储有关用户的信息 – 认证状态和声明@H_419_3@

事实是,ClaimsPrincipal只包含一组身份,并指向当前使用的一个,但据我所知,主体通常不会包含超过1个身份,即使这样,用户也不会使用2或更多的登录身份.@H_419_3@

对我来说,ClaimPrincipal除了使用它来获得当前的身份,否认我的无知,这是没用的.@H_419_3@

除了我所说的以外,我还缺少什么,我们就ClaimPrincipal类反向兼容?@H_419_3@解决方法 一个重要的安全原则是“谁说”,即我们是否信任正在声明对该身份的主张的一方,所以对于一个特定的ClaimPrincipal,我们可能会有不同的身份,每个身份都会声明一组不同的索赔,这使我们能够确定应用程序中的超控访问控制,

我们来看一个正在通过Windows身份验证身份验证的企业应用程序的示例,我们也希望基于应用程序数据库中的团队或部门来断言一些访问控制.@H_419_3@

使用ClaimsTransformationManager,我们可以统一这两个集合,即在认证用户之后,我们可以在数据库中查找用户的团队/部门,并创建应用程序发出的一组声明.@H_419_3@

所以现在我们有Windows所断言的角色(这是权利要求),以及声明团队或部门的自定义声明的应用程序身份.@H_419_3@