コード例 #1
0
        public void ShouldRequestAuthorizationFromUserDomain()
        {
            using (AadAuthProviderTest.TestAppHost())
            {
                var request = new MockHttpRequest("myapp", "GET", "text", "/myapp", new NameValueCollection
                {
                    { "redirect", "http://localhost/myapp/secure-resource" }
                }, Stream.Null, null);
                var mockAuthService = MockAuthService(_directoryRepository, request);
                var session         = new AuthUserSession();

                var username = "******" + OrmLiteDirectoryRepositoryTest.Directory1.DirectoryDomain;
                var response = Subject.Authenticate(mockAuthService.Object, session, new Authenticate()
                {
                    UserName = username,
                    provider = AadMultiTenantAuthProvider.Name
                });
                var result      = (IHttpResult)response;
                var codeRequest = new Uri(result.Headers["Location"]);
                var query       = PclExportClient.Instance.ParseQueryString(codeRequest.Query);
                var d           = OrmLiteDirectoryRepositoryTest.Directory1;

                query["client_id"].Should().Be(d.ClientId);
                query["domain_hint"].Should().Be(d.DomainHint);
                query["login_hint"].Should().Be(username);
                codeRequest.Authority.Should().Be("login.microsoftonline.com");
                codeRequest.LocalPath.Should().Be($"/{d.TenantId}/oauth2/authorize");
                codeRequest.Scheme.Should().Be(Uri.UriSchemeHttps);

                session.ReferrerUrl.Should().Be("http://localhost/myapp/secure-resource");
            }
        }
コード例 #2
0
        public void ShouldNotAttemptAuthenticationAgainstUnRegisteredDirectory()
        {
            using (AadAuthProviderTest.TestAppHost())
            {
                var request = new MockHttpRequest("myapp", "GET", "text", "/myapp", new NameValueCollection
                {
                    { "redirect", "http://localhost/myapp/secure-resource" }
                }, Stream.Null, null);
                var mockAuthService = MockAuthService(_directoryRepository, request);
                var session         = new AuthUserSession();

                var username  = "******";
                var exception = Assert.Throws <UnauthorizedAccessException>(() => Subject.Authenticate(mockAuthService.Object, session, new Authenticate()
                {
                    UserName = username,
                    provider = AadMultiTenantAuthProvider.Name
                }));

                Assert.AreEqual($"Directory not found: @notregistered.com", exception.Message);
            }
        }