В чем разница между System.IdentityModel и Microsoft.IdentityModel, какую мне следует использовать? - PullRequest
2 голосов
/ 25 октября 2011

Я только начинаю пытаться написать провайдера федеративных заявок. Я использую http://claimsid.codeplex.com/ примеры в качестве шаблона.Поэтому я запускаю VS2010, чтобы начать собственный проект, и первое, что я замечаю, это то, что существует System.IdentityModel, а также Microsoft.IdentityModel.Обычно это происходит, когда материал добавляется в среду .Net, становясь «мейнстримом».

Это здесь?

Какой я должен использовать?

1 Ответ

4 голосов
/ 25 октября 2011

При использовании проверки подлинности / авторизации на основе утверждений вам потребуется использовать Microsoft.IdentityModel, поскольку он является частью Windows Identity Framework (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.

...