2

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

这是这里的情况吗?

我应该使用哪一个?

4

1 回答 1

4

使用基于声明的身份验证/授权时,您将需要使用 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。

于 2011-10-25T00:08:11.527 回答