/// <summary>Constructor.</summary> public RestClient(Uri serverUri, string endpointName, ILoginRequestHandler loginRequestHandler = null, TimeSpan?timeout = null, int maxUriLength = DefaultMaxUriLength, bool chunked = true) { if (serverUri == null) { throw new ArgumentNullException(nameof(serverUri)); } ServiceLocation = new UriBuilder(serverUri) { Path = (serverUri.AbsolutePath.Replace("/DataServiceSoap", "") + "/" + endpointName).Replace("//", "/") }.Uri; _LoginRequestHandler = loginRequestHandler; _Chunked = chunked; MaxUriLength = maxUriLength; BuildHttpClient(timeout); }
/// <summary> /// Main Constructor. Initilization of the client class for communicating with the RawDataService via the given <paramref name="serverUri"/> /// </summary> /// <param name="serverUri">The PiWeb Server uri, including port and instance</param> /// <param name="loginRequestHandler"></param> /// <param name="maxUriLength">The uri length limit</param> public RawDataServiceRestClient(Uri serverUri, int maxUriLength = RestClient.DefaultMaxUriLength, ILoginRequestHandler loginRequestHandler = null) : base(new RestClient(serverUri, EndpointName, loginRequestHandler, maxUriLength: maxUriLength)) { }
public AuthController(ILoginRequestHandler loginRequestHandler) { _loginRequestHandler = loginRequestHandler; }
public static AuthenticationContainer RequestAuthenticationInformationUpdate(AuthenticationMode authenticationMode, Uri instanceUri, ILoginRequestHandler loginRequestHandler) { try { if (loginRequestHandler == null) { return(null); } switch (authenticationMode) { case AuthenticationMode.NoneOrBasic: return(AuthenticationContainer.FromUsernamePasswordCredential( loginRequestHandler.CredentialRequest(instanceUri))); case AuthenticationMode.Windows: return(new AuthenticationContainer(AuthenticationMode.Windows)); case AuthenticationMode.Certificate: case AuthenticationMode.HardwareCertificate: return(AuthenticationContainer.FromCertificateCredential( loginRequestHandler.CertificateRequest(instanceUri, authenticationMode == AuthenticationMode.HardwareCertificate))); case AuthenticationMode.OAuth: return(AuthenticationContainer.FromOAuthTokenCredential( loginRequestHandler.OAuthRequest(instanceUri))); default: throw new ArgumentOutOfRangeException(nameof(authenticationMode), authenticationMode, null); } } catch (OperationCanceledException ex) { throw new LoginCanceledException("Login canceled", ex); } }