Example #1
0
        public void WebSudoRequired_service_succeeds_if_re_authenticated()
        {
            var client      = GetClient();
            var authRequest = new Authenticate
            {
                provider   = CredentialsAuthProvider.Name,
                UserName   = UserName,
                Password   = Password,
                RememberMe = true,
            };

            client.Send(authRequest);

            var request = new RequiresWebSudo {
                Name = "test"
            };

            try
            {
                client.Send <RequiresWebSudoResponse>(request);
                Assert.Fail("Shouldn't be allowed");
            }
            catch (WebServiceException)
            {
                client.Send(authRequest);
                var response = client.Send <RequiresWebSudoResponse>(request);
                Assert.That(response.Result, Is.EqualTo(request.Name));
            }
        }
Example #2
0
        public void WebSudoRequired_service_returns_PaymentRequired_if_not_re_authenticated()
        {
            try
            {
                var client      = GetClient();
                var authRequest = new Authenticate
                {
                    provider   = CredentialsAuthProvider.Name,
                    UserName   = UserName,
                    Password   = Password,
                    RememberMe = true,
                };
                client.Send(authRequest);
                var request = new RequiresWebSudo {
                    Name = "test"
                };
                var response = client.Send(request);

                Assert.Fail("Shouldn't be allowed");
            }
            catch (WebServiceException webEx)
            {
                Assert.That(webEx.StatusCode, Is.EqualTo((int)HttpStatusCode.PaymentRequired));
                Console.WriteLine(webEx.Dump());
            }
        }
Example #3
0
        public void Failed_re_authentication_does_not_logout_user()
        {
            var client      = GetClient();
            var authRequest = new Authenticate
            {
                provider   = CredentialsAuthProvider.Name,
                UserName   = UserName,
                Password   = Password,
                RememberMe = true,
            };

            client.Send(authRequest);
            var request = new RequiresWebSudo {
                Name = "test"
            };

            try
            {
                client.Send(request);
                Assert.Fail("Shouldn't be allowed");
            }
            catch
            {
                // ignore the first 402
            }
            try
            {
                client.Send(new Authenticate
                {
                    provider   = CredentialsAuthProvider.Name,
                    UserName   = UserName,
                    Password   = "******",
                    RememberMe = true,
                });
            }
            catch (WebServiceException webEx)
            {
                Assert.That(webEx.StatusCode, Is.EqualTo((int)HttpStatusCode.Unauthorized));
                Console.WriteLine(webEx.ResponseDto.Dump());
            }

            // Should still be authenticated, but not elevated
            try
            {
                client.Send <RequiresWebSudoResponse>(request);
                Assert.Fail("Shouldn't be allowed");
            }
            catch (WebServiceException webEx)
            {
                Assert.That(webEx.StatusCode, Is.EqualTo((int)HttpStatusCode.PaymentRequired));
                Console.WriteLine(webEx.Dump());
            }
        }
Example #4
0
 public object Any(RequiresWebSudo request)
 {
     return(new RequiresWebSudoResponse {
         Result = request.Name
     });
 }