コード例 #1
0
        public void DecorateAsync_IfIncludeAuthenticationSchemeAsIdentityProviderClaim_And_IfTheClaimNotAlreadyExists_ShouldAddTheClaim()
        {
            const string authenticationScheme    = "Authentication-scheme";
            var          authenticationDecorator = this.CreateAuthenticationDecorator();
            var          claims = new ClaimBuilderCollection();

            authenticationDecorator.DecorateAsync(null, authenticationScheme, claims, null).Wait();

            Assert.AreEqual(authenticationScheme, claims.First(claim => string.Equals(ExtendedClaimTypes.IdentityProvider, claim.Type, StringComparison.OrdinalIgnoreCase)).Value);
        }
        public void DecorateAsync_CurrentWindowsPrincipal_WithoutRoles_Test()
        {
            const string authenticationScheme = "Test-authentication-scheme";
            var claims = new ClaimBuilderCollection();
            var windowsIdentity = WindowsIdentity.GetCurrent();
            var principal = new WindowsPrincipal(windowsIdentity);
            var authenticateResult = this.CreateAuthenticateResult(principal);
            var windowsAuthenticationDecorator = this.CreateWindowsAuthenticationDecorator();

            windowsAuthenticationDecorator.DecorateAsync(authenticateResult, authenticationScheme, claims, null).Wait();

            Assert.AreEqual(8, claims.Count);
            Assert.AreEqual(windowsIdentity.AuthenticationType, claims.First(claim => string.Equals(claim.Type, ClaimTypes.AuthenticationMethod, StringComparison.Ordinal)).Value);
            Assert.AreEqual(windowsIdentity.Name, claims.First(claim => string.Equals(claim.Type, ClaimTypes.Name, StringComparison.Ordinal)).Value);
            Assert.AreEqual(windowsIdentity.FindFirst(ClaimTypes.PrimarySid).Value, claims.First(claim => string.Equals(claim.Type, ClaimTypes.NameIdentifier, StringComparison.Ordinal)).Value);
            Assert.AreEqual(windowsIdentity.FindFirst(ClaimTypes.PrimarySid).Value, claims.First(claim => string.Equals(claim.Type, ClaimTypes.PrimarySid, StringComparison.Ordinal)).Value);
            Assert.AreEqual(windowsIdentity.Name, claims.First(claim => string.Equals(claim.Type, ClaimTypes.WindowsAccountName, StringComparison.Ordinal)).Value);
            Assert.AreEqual(authenticationScheme, claims.First(claim => string.Equals(claim.Type, ExtendedClaimTypes.IdentityProvider, StringComparison.Ordinal)).Value);
        }