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)); } }
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()); } }
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()); } }
public object Any(RequiresWebSudo request) { return(new RequiresWebSudoResponse { Result = request.Name }); }