Now this is odd. After completing some research on claims based solutions in .NET, found that different authors refer to different classes in .NET namespace when actually speaking on the same matter. Claim class (not to mention other Identity, Principal, Manager, Helper classes around) is defined in 3 different namespaces.
It is clear that WIF is separate add-on for .NET 3.5 and 4.0 and that it is rewritten and made part of core in 4.5. However it could really help to have clear directions on what class to use for new projects (so that port to 4.5 after could be easier). Does anybody else have more info on the subject?
1st link: http://msdn.microsoft.com/en-us/library/ms572956(v=vs.110) (System.IdentityModel.Claims namespace)
2nd: http://msdn.microsoft.com/en-us/library/microsoft.identitymodel.claims.claim.aspx (Microsoft.IdentityModel.Claims)
3rd: (System.Security.Claims.Claim)
Microsoft's answer appears to be: "WIF classes are now spread across various assemblies, the main ones being
System.Security.Claims
,System.IdentityModel
, andSystem.IdentityModel.Services
.System.Security.Claims
contains the newClaimsPrincipal
andClaimsIdentity
classes (see below). All principals in .NET now derive fromClaimsPrincipal
. The classes fromMicrosoft.IdentityModel
in WIF 1.0 have been spread mainly acrossSystem.IdentityModel
(pipeline, WCF integration) andSystem.IdentityModel.Services
(support for WS-Federation, session management). Those changes are reflected on the configuration sections as well."System.IdentityModel.Claims
is part of WCF/.Net 3.0Microsoft.IdentityModel.Claims
extendsSystem.IdentityModel.Claims
and is the Windows Identity Foundation class.System.Security.Claims
is the .Net 4.5 version.So if you're writing using
WIF
, you should useMicrosoft.IdentityModel.Claims
.For anyone still looking for a definitive answer to this, MSDN has the following information on it's System.IdentityModel.Claims Namespace page...