.NET 中 IIdentity 和 IPrincipal 背后的想法是什么

2024-03-15

那么,两者存在的目的是什么?IIdentity and IPrincipal,而不是一些IIdentityMergedWithPrincipal?什么时候在同一个类中实现两者还不够?

另外,为了理解目的,我想知道这个概念来自哪里:

  • 它起源于.Net
  • 设计模式中有 Identity/Principal 的概念,System.Security.Principal在这些接口中实现
  • 它起源于其他地方并支持兼容性

因此,是否UserPrincipal from System.DirectoryServices行为类似于IPrincipal但不是偶然或故意实施的?

附:我正在寻找想法背后的推理,而不是利益/争议比较,所以请尽量不要开始基于观点的讨论


IIdentity仅用于用户的经过验证的身份,无论他们可能担任什么角色。

IPrincipal用于将用户的身份与授权的他们在给定的安全上下文中所扮演的角色。

例如,您可以使用 Facebook 或 Google 等第三方登录提供商来获取用户的身份,但您不会从这些提供商处获得主体,因为它们不提供任何角色。您可以使用自己的应用程序或第三方基于角色的授权提供程序将角色应用于例如FacebookIdentity or GoogleIdentity。不同的应用程序可以期望不同的主体,具有自己的角色,但仍然使用与另一个应用程序中相同的身份。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.NET 中 IIdentity 和 IPrincipal 背后的想法是什么 的相关文章

随机推荐