示例#1
0
        /// <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);
        }
示例#2
0
 /// <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))
 {
 }
示例#3
0
 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);
            }
        }