public void ExtractClaimUid_ClaimsIdentity() { // Arrange Mock <IIdentity> mockIdentity = new Mock <IIdentity>(); mockIdentity.Setup(o => o.IsAuthenticated).Returns(true); MockAntiForgeryConfig config = new MockAntiForgeryConfig() { UniqueClaimTypeIdentifier = "unique-identifier" }; ClaimsIdentityConverter converter = new ClaimsIdentityConverter(new Func <IIdentity, ClaimsIdentity>[] { identity => { Assert.Equal(mockIdentity.Object, identity); MockClaimsIdentity claimsIdentity = new MockClaimsIdentity(); claimsIdentity.AddClaim("unique-identifier", "some-value"); return(claimsIdentity); } }); ClaimUidExtractor extractor = new ClaimUidExtractor( config: config, claimsIdentityConverter: converter); // Act BinaryBlob retVal = extractor.ExtractClaimUid(mockIdentity.Object); // Assert Assert.NotNull(retVal); Assert.Equal("CA9CCFF86F903FBB7505BAAA9F222E49EC2A1E8FAD630AE73DE180BD679751ED", HexUtil.HexEncode(retVal.GetData())); }
internal ClaimUidExtractor( IAntiForgeryConfig config, ClaimsIdentityConverter claimsIdentityConverter ) { _config = config; _claimsIdentityConverter = claimsIdentityConverter; }
public void TryConvert_NoMatches_ReturnsNull() { // Arrange IIdentity identity = new Mock <IIdentity>().Object; ClaimsIdentityConverter converter = new ClaimsIdentityConverter(new Func <IIdentity, ClaimsIdentity> [0]); // Act ClaimsIdentity retVal = converter.TryConvert(identity); // Assert Assert.Null(retVal); }
public void TryConvert_NoMatches_ReturnsNull() { // Arrange IIdentity identity = new Mock<IIdentity>().Object; ClaimsIdentityConverter converter = new ClaimsIdentityConverter(new Func<IIdentity, ClaimsIdentity>[0]); // Act ClaimsIdentity retVal = converter.TryConvert(identity); // Assert Assert.Null(retVal); }
public static void ConfigureClaimsConverter(this ClaimsIdentityConverter claimsProvider) { claimsProvider.ConfigureClaimsConverter <VoterIdentity>( voterIdentity => new[] { // id new Claim(ClaimNames.Id, voterIdentity.Id.ToString()), // pesel new Claim(ClaimNames.Pesel, voterIdentity.Pesel.ToString()), // is administrator new Claim(ClaimNames.IsAdministrator, voterIdentity.IsAdministrator.ToString()) }); }
public void TryConvert_SkipsGrandfatheredTypes(IIdentity identity) { // Arrange ClaimsIdentityConverter converter = new ClaimsIdentityConverter(new Func <IIdentity, ClaimsIdentity>[] { _ => { throw new Exception("Should never be called."); } }); // Act ClaimsIdentity retVal = converter.TryConvert(identity); // Assert Assert.Null(retVal); }
public void TryConvert_SkipsGrandfatheredTypes(IIdentity identity) { // Arrange ClaimsIdentityConverter converter = new ClaimsIdentityConverter(new Func<IIdentity, ClaimsIdentity>[] { _ => { throw new Exception("Should never be called."); } }); // Act ClaimsIdentity retVal = converter.TryConvert(identity); // Assert Assert.Null(retVal); }
public void TryConvert_ReturnsFirstMatch() { // Arrange IIdentity identity = new Mock <IIdentity>().Object; ClaimsIdentity claimsIdentity = new MockClaimsIdentity(); ClaimsIdentityConverter converter = new ClaimsIdentityConverter(new Func <IIdentity, ClaimsIdentity>[] { _ => null, i => (i == identity) ? claimsIdentity : null }); // Act ClaimsIdentity retVal = converter.TryConvert(identity); // Assert Assert.Same(claimsIdentity, retVal); }
public void TryConvert_ReturnsFirstMatch() { // Arrange IIdentity identity = new Mock<IIdentity>().Object; ClaimsIdentity claimsIdentity = new MockClaimsIdentity(); ClaimsIdentityConverter converter = new ClaimsIdentityConverter(new Func<IIdentity, ClaimsIdentity>[] { _ => null, i => (i == identity) ? claimsIdentity : null }); // Act ClaimsIdentity retVal = converter.TryConvert(identity); // Assert Assert.Same(claimsIdentity, retVal); }
public void ExtractClaimUid_NotAClaimsIdentity() { // Arrange Mock <IIdentity> mockIdentity = new Mock <IIdentity>(); mockIdentity.Setup(o => o.IsAuthenticated).Returns(true); MockAntiForgeryConfig config = new MockAntiForgeryConfig(); ClaimsIdentityConverter converter = new ClaimsIdentityConverter(new Func <IIdentity, ClaimsIdentity> [0]); ClaimUidExtractor extractor = new ClaimUidExtractor( config: config, claimsIdentityConverter: converter); // Act BinaryBlob retVal = extractor.ExtractClaimUid(mockIdentity.Object); // Assert Assert.Null(retVal); }
public static void ConfigureIdentityConverter(this ClaimsIdentityConverter claimsProvider) { claimsProvider.ConfigureIdentityConverter( claims => { var claimsDictionary = claims.ToDictionary(c => c.Type, c => c.Value); // id var idValue = claimsDictionary.GetValueOrDefault(ClaimNames.Id); var id = idValue != default ? Guid.Parse(idValue) : default; // pesel var peselValue = claimsDictionary.GetValueOrDefault(ClaimNames.Pesel); var pesel = peselValue ?? string.Empty; // is administrator var isAdministratorValue = claimsDictionary.GetValueOrDefault(ClaimNames.IsAdministrator); var isAdministrator = !string.IsNullOrEmpty(isAdministratorValue) && bool.Parse(isAdministratorValue); return(new VoterIdentity(id, pesel, isAdministrator)); }); }