System.IdentityModel& Microsoft.IdentityModel我应该使用哪一个?

时间:2011-10-24 23:31:13

标签: asp.net-mvc federated-identity

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

这是这种情况吗?

我应该使用哪一个?

1 个答案:

答案 0 :(得分: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。