Требование .NET в трех пространствах имен - программирование
Подтвердить что ты не робот

Требование .NET в трех пространствах имен

Теперь это нечетно. После завершения некоторых исследований решений на основе утверждений в .NET было обнаружено, что разные авторы ссылаются на разные классы в пространстве имен .NET, когда на самом деле говорят по одному и тому же вопросу. Класс требований (не говоря уже о других классах Identity, Principal, Manager, Helper) определен в трех разных пространствах имен.

Понятно, что WIF является отдельным надстройкой для .NET 3.5 и 4.0 и что он переписан и входит в ядро ​​в версии 4.5. Однако это может действительно помочь получить четкие указания относительно того, какой класс использовать для новых проектов (так что порт до 4.5 после может быть проще). У кого-нибудь еще есть дополнительная информация по этому вопросу?

1-я ссылка: http://msdn.microsoft.com/en-us/library/ms572956(v=vs.110) (пространство имен System.IdentityModel.Claims)

2nd: http://msdn.microsoft.com/en-us/library/microsoft.identitymodel.claims.claim.aspx (Microsoft.IdentityModel.Claims)

3rd: (System.Security.Claims.Claim)

4b9b3361

Ответ 1

Для тех, кто все еще ищет окончательный ответ на этот вопрос, MSDN имеет следующую информацию: System.IdentityModel.Claims Namespace page...

В пространстве имен System.IdentityModel.Claims содержатся классы, которые внедрить основанную на Windows Media Foundation (WCF) модель авторизации идентичности. Эта модель включает класс Claim и класс ClaimSet.

Начиная с .NET Framework 4.5 и интеграция Windows Identity Foundation (WIF) в .NET. Framework, модель идентичности на основе требований WCF была заменена WIF. WIF предоставляет модель объекта идентификации на основе утверждений, которая может быть используется для обеспечения аутентификации и авторизации по нескольким Microsoft, включая CLR, WCF и ASP.NET. WIF классы, которые представляют претензии, типы претензий и удостоверения личности и Принципы, основанные на требованиях, содержатся в System.Security.Claims. Начиная с .NET 4.5, эти следует использовать классы, а не System.IdentityModel.Claims namespace.

Ответ 2

Ответ Microsoft выглядит следующим образом: "WIF-классы теперь распределены между различными сборками, основными из которых являются System.Security.Claims, System.IdentityModel и System.IdentityModel.Services. System.Security.Claims содержит новые классы ClaimsPrincipal и ClaimsIdentity (см. ниже). Все принципы в .NET теперь происходят от ClaimsPrincipal. Классы из Microsoft.IdentityModel в WIF 1.0 были распространены главным образом через System.IdentityModel (конвейер, интеграция WCF) и System.IdentityModel.Services (поддержка WS-Federation, управление сеансом). Эти изменения отражены также в разделах конфигурации.

Ответ 3

System.IdentityModel.Claims является частью WCF/.NET 3.0

Microsoft.IdentityModel.Claims extends System.IdentityModel.Claims и является классом Windows Identity Foundation.

System.Security.Claims - это версия .Net 4.5.

Итак, если вы пишете с помощью WIF, вы должны использовать Microsoft.IdentityModel.Claims.