【问题标题】:.NET Claim in three namespaces三个命名空间中的 .NET 声明
【发布时间】:2012-07-27 15:20:37
【问题描述】:

现在这很奇怪。在完成对 .NET 中基于声明的解决方案的一些研究后,发现不同的作者在实际谈论同一问题时会引用 .NET 命名空间中的不同类。声明类(更不用说周围的其他 Identity、Principal、Manager、Helper 类)在 3 个不同的命名空间中定义。

很明显,WIF 是 .NET 3.5 和 4.0 的单独附加组件,它在 4.5 中被重写并成为核心的一部分。然而,对于新项目使用什么类有明确的指导确实很有帮助(这样移植到 4.5 之后可能会更容易)。其他人有关于这个主题的更多信息吗?

第一个链接:http://msdn.microsoft.com/en-us/library/ms572956(v=vs.110)(System.IdentityModel.Claims 命名空间)

第二个:http://msdn.microsoft.com/en-us/library/microsoft.identitymodel.claims.claim.aspx(Microsoft.IdentityModel.Claims)

第三个:(System.Security.Claims.Claim)

【问题讨论】:

  • 嗯,比如System.Windows.Forms.TimerSystem.Threading.Timer,同名;但它们不是一回事。
  • 如果您订阅了 MSDN,您可以提出支持请求或提出问题。但我最好的选择是,如果它移到核心,它将是第三个。 Atlas(最后是 .NET AJAX)框架也发生了同样的事情。

标签: .net wif claims-based-identity


【解决方案1】:

对于仍在寻找明确答案的任何人,MSDN 在其System.IdentityModel.Claims Namespace 页面上提供以下信息...

System.IdentityModel.Claims 命名空间包含的类 实现基于声明的 Windows Communication Foundation (WCF) 身份授权模型。该模型包括 Claim 类和 ClaimSet 类。

从 .NET Framework 4.5 和 将 Windows Identity Foundation (WIF) 集成到 .NET 框架,WCF 基于声明的身份模型已被取代 WIF。 WIF 提供了一个基于声明的身份对象模型,可以 用于跨多个提供身份验证和授权 Microsoft 产品堆栈,包括 CLR、WCF 和 ASP.NET。 WIF 表示声明、声明类型和身份的类,以及 基于索赔的委托人包含在 System.Security.Claims 命名空间。 从 .NET 4.5 开始,这些 应该使用类而不是 System.IdentityModel.Claims 命名空间。

【讨论】:

  • +1 表示 ...应该使用这些类而不是 System.IdentityModel.Claims 命名空间中的类。
【解决方案2】:

Microsoft 的回答似乎是:“WIF 类现在分布在各种程序集中,主要是 System.Security.ClaimsSystem.IdentityModelSystem.IdentityModel.ServicesSystem.Security.Claims 包含新的 ClaimsPrincipalClaimsIdentity 类(见下文)。现在 .NET 中的所有主体都派生自 ClaimsPrincipalWIF 1.0 中来自 Microsoft.IdentityModel 的类主要分布在 System.IdentityModel 中(管道、WCF 集成)和System.IdentityModel.Services支持 WS-Federation、会话管理)。这些更改也反映在配置部分中。”

【讨论】:

    【解决方案3】:

    System.IdentityModel.Claims 是 WCF/.Net 3.0 的一部分

    Microsoft.IdentityModel.Claims 扩展 System.IdentityModel.Claims 并且是 Windows Identity Foundation 类。

    System.Security.Claims 是.Net 4.5 版本。

    因此,如果您使用WIF 写作,您应该使用Microsoft.IdentityModel.Claims

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-05
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 2012-10-29
      • 2013-03-05
      • 2012-12-15
      相关资源
      最近更新 更多