gpt4 book ai didi

c# - .NET 中的 Principal 到底是什么?

转载 作者:IT王子 更新时间:2023-10-29 04:06:35 25 4
gpt4 key购买 nike

在谈论 .NET 中的身份时,我们想到了 Principal .有接口(interface) IPrincipal并与它一起实现 ClaimsPrincipal .我们甚至可以随时使用 Thread.CurrentPrincipal 访问该接口(interface)的一个实现实例。 .

现在,我一直不明白这个校长到底是什么。确实,起初我以为它是代表当前用户身份的东西。但不是,其实还有另外一个接口(interface)IIdentity连同实现ClaimsIdentity为了那个原因。稍微搜索一下,我在 MSDN 上找到了以下内容:

A principal object represents the security context of the user on whose behalf the code is running, including that user's identity (IIdentity) and any roles to which they belong.

但是这个代表代码运行的用户的安全上下文究竟意味着什么?我想我还没有明白这应该代表什么。

最佳答案

在授权访问资源或运行某些代码的能力时,仅仅知道哪个用户正在授权该操作是不够的,还需要知道他们是在什么角色下授权的。

将此视为大致等同于提升 shell 时:shell 现在在不同的主体下运行(具有更多权限),即使主体的身份仍然相同(您的用户帐户)。

IIdentity 类型专注于身份验证 问题,即确定系统已知的身份实际上属于想要以该身份行事的代理。这是授权任何事情的必要先决条件,但不是全部。

关于c# - .NET 中的 Principal 到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28436332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com