IdentityModel .Net 4.5声明与.Net 4.6声明

时间:2016-09-06 14:27:50

标签: .net authorization claims-based-identity claims .net-4.6

Claim过去在 .Net 4.5 中拥有以下属性

  • ClaimType:获取声明的声明类型。
  • Issuer:获取声明的发布者。
  • OriginalIssuer:获取声明的原始发布者。
  • Properties:获取名称 - 值对的属性。
  • Subject:获取声明的主题。
  • Value:获取声明的值。
  • ValueType:获取声明的值类型。

现在 .Net 4.6 中有新的Claim,其中包含以下属性

  • ClaimType:获取声明的类型。
  • DefaultComparer:获取一个可以比较两个Claim对象是否相等的对象。
  • Resource:获取与此Claim对象关联的资源。
  • Right:统一资源标识符(URI)的字符串表示,指定与此Claim对象关联的权限。
  • System:代表系统实体的预定义声明。

它们是claims-based-identity概念中声明的相同概念的不同表示吗?

或者整个概念已经改变了?

更确切地说,我想考虑以下授权数据:

  • UserData:UserId = "5";
  • 资源数据:ResourceName = "Book";
  • ActionData:ActionName = "ViewContents";
  • EnvironmentData:SystemLanguage = "English"

据我了解,此数据可由4种不同的旧式声明表示。这对我来说很明显是如何创建它们的。

如何通过新的声明正确表示此数据?

谢谢!

1 个答案:

答案 0 :(得分:0)

我很抱歉有误导性的问题。

问题的第一个主张(有7个属性)是新的。它存在于.Net 4.5之后。它来自System.Security.Claims名称空间。

问题的第二个主张(有5个属性)是另一个声明,自.Net 3.0以来就存在。它来自System.IdentityModel.Claims名称空间。

我认为问题中的情况需要的是具有7个属性的声明,第一个来自System.Security.Claims

编辑: This回答是一个很好的理由。