Microsoft.IdentityModel与System.IdentityModel的区别

24
我正在使用Forms身份验证和ASP.NET MVC 2构建基于声明的授权系统。我发现一个名为"Microsoft.IdentityModel" 的命名空间提供了许多与另一个 "System.IdentityModel" 相同的东西。
这两个命名空间为什么分别存在,当它们的功能似乎存在重叠时? System.IdentityModel Microsoft.IdentityModel

不是要抢线,但我曾因使用WIF而受到严重打击,绝对要在ACTIVE STS配置中设置它。 WIF无法在仅被动配置中可靠地运行。 - Chris Marisic
2个回答

55

1
现在是2023年,Microsoft.IdentityModel仍然存在,作为Microsoft.IdentityModel.AbstractionsMicrosoft.IdentityModel.JsonWebTokens和其他一些库的一部分。同时System.IdentityModel.Tokens.Jwt也仍然活跃,还有一个新的库IdentityModel。这很令人困惑 :S - Dai
IdentityModel是一个私有存储库,与MS无关-https://github.com/IdentityModel。 通常,库会保留以实现向后兼容性,但你应该尽可能使用最新版本,因为它们通常工作更好并提供一些更新的选项。 - Westley

-5
如果您正在使用基于声明的身份验证/授权,则需要使用Microsoft.IdentityModel,因为它是Windows Identity Framework的一部分。
关于MVC2和使用WIF的指导,我建议查看Patterns and Practices所做的工作。他们有一个不错的MVC示例,我用它作为起点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接