gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 03:54:39 25 4
gpt4 key购买 nike

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

此外,为了理解目的,我想知道这个概念的来源:

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

因此,System.DirectoryServices 中的 UserPrincipal 是否与 IPrincipal 类似,但不是无意或有意实现的?

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

最佳答案

IIdentity 仅用于用户的authenticated 身份,无论他们可能拥有什么角色。

IPrincipal 用于将用户身份与其在给定安全上下文中拥有的授权角色结合起来。

例如,您可以使用第三方登录提供商(如 Facebook 或 Google)来获取用户身份,但您不会从这些提供商那里获得委托(delegate)人,因为它们不提供任何角色。您可以使用自己的应用程序或第三方基于角色的授权提供程序将角色应用到例如 FacebookIdentityGoogleIdentity。不同的应用程序可以期待不同的主体,具有自己的角色,但仍使用与另一个应用程序相同的身份。

关于c# - .NET 中 IIdentity 和 IPrincipal 背后的想法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27107848/

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