【问题标题】:What is the difference between System.IdentityModel & Microsoft.IdentityModel which one should I use?System.IdentityModel 和 Microsoft.IdentityModel 我应该使用哪一个有什么区别?
【发布时间】:2011-10-24 23:31:13
【问题描述】:

我刚开始尝试编写一个联合声明提供程序,我使用http://claimsid.codeplex.com/ 示例作为我的模板。所以我启动 VS2010 开始我自己的项目,我注意到的第一件事是有一个 System.IdentityModel 以及 Microsoft.IdentityModel。这通常发生在将东西添加到 .Net 框架成为“主流”时。

这里是这样吗?

我应该使用哪一个?

【问题讨论】:

    标签: asp.net-mvc federated-identity


    【解决方案1】:

    使用基于声明的身份验证/授权时,您需要使用 Microsoft.IdentityModel,因为它是 Windows 身份框架 (WIF) 的一部分。

    System.IdentityModel 声明是 WCF 堆栈的一部分。它在 WIF 之前用于索赔。据我了解,Microsoft.IdentityModel 建立在 System.IdentityModel 之上。

    WIF 依赖于 System.IdentityModel。根据您所做的事情,您可能需要同时引用两者。

    这是一个示例,取自 Claim 类型(恰好在两个程序集中):

    namespace Microsoft.IdentityModel.Claims
    {
        public class Claim
        {
            public Claim(string claimType, string value);
            public Claim(System.IdentityModel.Claims.Claim claim, string issuer);
            ...
        }
    }
    

    如果您可以选择使用 System.IdentityModel 和 Microsoft.IdentityModel,请始终使用 Microsoft.IdentityModel。

    【讨论】:

    • 4.5 更新 -> MSDN:从 .NET Framework 4.5 开始,Windows Identity Foundation (WIF) 已完全集成到 .NET Framework 中。本主题讨论的 WIF 版本 WIF 3.5 已弃用,仅应在针对 .NET Framework 3.5 SP1 或 .NET Framework 4 进行开发时使用。有关 .NET Framework 4.5 中 WIF 的详细信息,也称为WIF 4.5,请参阅 .NET Framework 4.5 开发指南中的 Windows Identity Foundation 文档
    猜你喜欢
    • 2012-11-14
    • 2011-09-16
    • 2012-01-16
    • 2021-04-15
    • 1970-01-01
    • 2011-06-12
    • 2022-07-30
    • 2012-02-15
    相关资源
    最近更新 更多