コード例 #1
0
        private static void OnSendingRequest(SendingRequestEventArgs e, string acsToken)
        {
            var request = (HttpWebRequest)e.Request;

            request.Headers[HttpRequestHeader.Authorization] = "WRAP access_token=\"" + HttpUtility.UrlDecode(acsToken) + "\"";
            request.Headers["x-ms-version"] = "1.0";
        }
コード例 #2
0
        private void OnSendingRequest(object sender, SendingRequestEventArgs e)
        {
            // Initialize the request
            _httpClient.InitializeRequest(e.Request);

            RaiseSendingRequest(new WebRequestEventArgs(e.Request));
        }
コード例 #3
0
 void DSClientBase_SendingRequest(object sender, SendingRequestEventArgs e)
 {
     if (_securityTokenInjector != null)
     {
         _securityTokenInjector.InjectToken(e.RequestHeaders);
     }
 }
コード例 #4
0
        private void ServiceContainer_SendingRequest(object sender, SendingRequestEventArgs e)
        {
            if (e.Request == null)
            {
                throw new Exception("Failed to intercept the sending request");
            }
            HttpWebRequest request = (HttpWebRequest)e.Request;

            request.Accept    = "application/json;odata=minimalmetadata";
            request.KeepAlive = true;                              //keep alive
            request.ServicePoint.Expect100Continue = false;        //content
            request.AllowAutoRedirect = true;
            request.ContentType       = "application/json;odata=minimalmetadata;charset=utf8";
            request.Timeout           = 10000000; //number of seconds before considering a request as timeout (consider to change it for batch operations)
            //                               //This way works to bring additional information with request headers
            if (sessionGuid.Length > 0)
            {
                string strB1Session = "B1SESSION=" + sessionGuid;
                if (routeIdString.Length > 0)
                {
                    strB1Session += "; " + routeIdString;
                }
                e.RequestHeaders.Add("Cookie", strB1Session);
            }
            ////Only works for get requests, but we can always use this, even it will be ignored by other request types.
            e.RequestHeaders.Add("Prefer", "odata.maxpagesize=" + defaultPagingSizing.ToString());
        }
コード例 #5
0
        /// <summary>
        /// Callback on DataContext object sending request.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="System.Data.Services.Client.SendingRequestEventArgs"/> instance containing the event data.</param>
        private void TableServiceContext_SendingRequest(object sender, SendingRequestEventArgs e)
        {
            HttpWebRequest request = e.Request as HttpWebRequest;

            // Check timeout
            int timeoutDex = request.RequestUri.Query.LastIndexOf("&timeout=", System.StringComparison.Ordinal);

            if (timeoutDex > 0)
            {
                timeoutDex += 9; // Magic number -> length of "&timeout="
                int    endDex        = request.RequestUri.Query.IndexOf('&', timeoutDex);
                string timeoutString = endDex > 0
                                           ? request.RequestUri.Query.Substring(timeoutDex, endDex - timeoutDex)
                                           : request.RequestUri.Query.Substring(timeoutDex);

                int result = -1;
                if (int.TryParse(timeoutString, out result) && result > 0)
                {
                    request.Timeout = result * 1000; // Convert to ms
                }
            }

            // Sign request
            if (this.ServiceClient.Credentials.IsSharedKey)
            {
                this.AuthenticationHandler.SignRequest(request, null /* operationContext */);
            }
            else if (this.ServiceClient.Credentials.IsSAS)
            {
                Uri transformedUri = this.ServiceClient.Credentials.TransformUri(request.RequestUri);

                // Recreate the request
                HttpWebRequest newRequest = WebRequest.Create(transformedUri) as HttpWebRequest;
                TableUtilities.CopyRequestData(newRequest, request);
                e.Request = newRequest;
                request   = newRequest;
            }

            lock (this.cancellationLock)
            {
                if (this.cancellationRequested)
                {
                    throw new OperationCanceledException(SR.OperationCanceled);
                }

                this.currentRequest = request;
            }

            // SAS will be handled directly by the queries themselves prior to transformation
            request.Headers.Add(
                Constants.HeaderConstants.StorageVersionHeader,
                Constants.HeaderConstants.TargetStorageVersion);

            CommonUtility.ApplyRequestOptimizations(request, -1);

            if (this.sendingSignedRequestAction != null)
            {
                this.sendingSignedRequestAction(request);
            }
        }
コード例 #6
0
 private void OnSendingRequest_AddCertificate(object sender, SendingRequestEventArgs args)
 {
     if (null != ClientCertificate)
     {
         (args.Request as HttpWebRequest).ClientCertificates.Add(ClientCertificate);
     }
 }
コード例 #7
0
        void context_SendingRequest(object sender, SendingRequestEventArgs e)
        {
            // NOTE: the http method is always GET - the SendingRequest event is fired
            // before ADO.Net data services sets the apropriate VERB.

            this.textBox1.AppendText(e.Request.FormatRequest());
        }
コード例 #8
0
ファイル: ProxyServices.cs プロジェクト: kylaran/MyGit
        public static void OnSendingRequestCookie(object sender, SendingRequestEventArgs e)
        {
            Login.TryLogin();
            var req = e.Request as HttpWebRequest;

            req.CookieContainer = Login.AuthCookie;
            e.Request           = req;
        }
コード例 #9
0
        private void DataOnSendingRequest(object sender, SendingRequestEventArgs sendingRequestEventArgs)
        {
            var stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat("Method: {0}{1}", sendingRequestEventArgs.Request.Method, Environment.NewLine)
            .AppendFormat("Uri: {0}{1}", sendingRequestEventArgs.Request.RequestUri, Environment.NewLine);
            TextStatus.Text = stringBuilder.ToString();
        }
コード例 #10
0
        void data_SendingRequest(object sender, SendingRequestEventArgs e)
        {
            var sb = new StringBuilder();

            sb.AppendFormat("Method: {0}\n", e.Request.Method);
            sb.AppendFormat("Uri: {0}\n", e.Request.RequestUri.ToString());
            this.textStatus.Text = sb.ToString();
        }
コード例 #11
0
        static void OnSendingRequestCookie(object sender, SendingRequestEventArgs e)
        {
            LoginClass.TryLogin("Пользователь 1", "Пользователь 1");
            var req = e.Request as HttpWebRequest;

            req.CookieContainer = LoginClass.AuthCookie;
            e.Request           = req;
        }
コード例 #12
0
        /// <summary>
        /// Handler that appends the token to every data access context request.
        /// </summary>
        /// <param name="sender">The issuer of the request.</param>
        /// <param name="e">Additional info for the request.</param>
        private void BeforeSendingRequest(object sender, SendingRequestEventArgs e)
        {
            HttpWebRequest request = e.Request as HttpWebRequest;

            if (request != null)
            {
                this.OnEnhanceRequest(request);
            }
        }
コード例 #13
0
 void _context_SendingRequest(object sender, SendingRequestEventArgs e)
 {
     //CookieContainer container = null;
     //var clientFormsIdentity = Thread.CurrentPrincipal.Identity as ClientFormsIdentity;
     //container = clientFormsIdentity != null
     //                ? clientFormsIdentity.AuthenticationCookies
     //                : ((CustomIdentity)Thread.CurrentPrincipal.Identity).AuthenticationCookies;
     //((HttpWebRequest)e.Request).CookieContainer = container;
 }
コード例 #14
0
        static void _entities_SendingRequest(object sender, SendingRequestEventArgs e)
        {   // Since service requires RelayAccessToken to authenticate client here we need to get token
            // from Access Control Service first before accessing our service.
            var    token       = GetTokenFromACS();
            string headerValue = string.Format("WRAP access_token=\"{0}\"", HttpUtility.UrlDecode(token));

            // We then attach the token to Authorization HTTP header. To learn more details please refer
            // to WRAP specifications.
            e.Request.Headers.Add("Authorization", headerValue);
        }
コード例 #15
0
        static void OnSendingRequestCookie(object sender, SendingRequestEventArgs e)
        {
            // Вызов метода класса LoginClass, реализующего аутентификацию переданного в параметрах метода пользователя.
            LoginClass.TryLogin("Supervisor", "Supervisor");
            var req = e.Request as HttpWebRequest;

            // Добавление полученных аутентификационных cookie в запрос на получение данных.
            req.CookieContainer = LoginClass.AuthCookie;
            e.Request           = req;
        }
コード例 #16
0
 // Currently SendingRequest2/SendingRequest2EventArgs is not supported in Phone
 private void InjectAuthenticationCookies(object sender, SendingRequestEventArgs e)
 {
     if (this.authenticationHeaders != null)
     {
         foreach (var header in this.authenticationHeaders)
         {
             e.RequestHeaders[header.Key] = header.Value;
         }
     }
 }
コード例 #17
0
ファイル: Proxy.cs プロジェクト: hantersuxx/BpmOnline
        static void OnSendingRequestCookie(object sender, SendingRequestEventArgs e)
        {
            // Вызов метода класса AuthService, реализующего аутентификацию переданного в параметрах метода пользователя.
            AuthService.TryLogin();
            var request = e.Request as HttpWebRequest;

            // Добавление полученных аутентификационных cookie в запрос на получение данных.
            request.CookieContainer = AuthService.AuthCookie;
            e.Request = request;
        }
コード例 #18
0
        /// <summary>
        /// Event handler for getting a token from ACS, adding the SWT token to the HTTP 'Authorization' header.
        /// The SWT token is cached so that we don't need to obtain a token on every request.
        /// </summary>
        /// <param name="sender">Sender of the event.</param>
        /// <param name="args">Event arguments.</param>
        private void AddTokenWithWritePermission(object sender, SendingRequestEventArgs args)
        {
            var httpRequest = (HttpWebRequest)args.Request;

            if (_cachedSwtToken == null)
            {
                _cachedSwtToken = GetTokenFromACS();
            }

            httpRequest.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + _cachedSwtToken);
        }
コード例 #19
0
        public static void OnSendingRequestCookie(object sender, SendingRequestEventArgs e)
        {
            var req = e.Request as HttpWebRequest;

            req.CookieContainer = LoginClass.AuthCookie;
            CookieCollection cookieCollection = LoginClass.AuthCookie.GetCookies(serverUri);
            string           csrfToken        = cookieCollection["BPMCSRF"].Value;

            ((HttpWebRequest)e.Request).Headers.Add("BPMCSRF", csrfToken);
            e.Request = req;
        }
コード例 #20
0
        void sldDataServiceContext_SendingRequest(object sender, SendingRequestEventArgs e)
        {
            ((HttpWebRequest)e.Request).CookieContainer = cookies;

            if (securityToken != null && securityToken != string.Empty)
            {
                ((HttpWebRequest)e.Request).Headers.Add("securityToken", securityToken);
            }

            ServicePointManager.ServerCertificateValidationCallback = (a, b, c, d) => true;
        }
コード例 #21
0
        /// <summary>
        /// Callback on DataContext object sending request.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="System.Data.Services.Client.SendingRequestEventArgs"/> instance containing the event data.</param>
        private void DataContextSendingRequest(object sender, SendingRequestEventArgs e)
        {
            HttpWebRequest request = e.Request as HttpWebRequest;

            request.Headers.Add(
                Protocol.Constants.HeaderConstants.StorageVersionHeader,
                Protocol.Request.GetTargetVersion());

            StorageCredentials.SignRequestLite(request);

            CommonUtils.ApplyRequestOptimizations(request, -1);
        }
コード例 #22
0
        private void OnSendingRequest(object sender, SendingRequestEventArgs e)
        {
            var httpRequest = e.Request as HttpWebRequest;

            httpRequest.Proxy             = HttpWebRequest.DefaultWebProxy;
            httpRequest.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials;

            if (httpRequest != null)
            {
                httpRequest.UserAgent = HttpUtility.CreateUserAgentString("NuGet Package Explorer");
                httpRequest.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
            }
        }
コード例 #23
0
        public static void OnSendingRequestCookie(object sender, SendingRequestEventArgs e)
        {
            LoginClass.TryLogIn("Supervisor", "Supervisor");
            var req = e.Request as HttpWebRequest;

            // Добавление аутентификационных cookie в запрос на получение данных.
            req.CookieContainer = LoginClass.AuthCookie;
            e.Request           = req;
            // Добавление CSRF-токена в заголовок запроса.
            CookieCollection cookieCollection = LoginClass.AuthCookie.GetCookies(new Uri("http://shedko.beesender.com/ServiceModel/AuthService.svc/Login"));
            string           csrfToken        = cookieCollection["BPMCSRF"].Value;

            ((HttpWebRequest)e.Request).Headers.Add("BPMCSRF", csrfToken);
        }
コード例 #24
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var current = request.RequestUri;
            ServiceFeignClientPipelineBuilder serviceFeignClientPipeline = _globalFeignClientPipeline?.GetServicePipeline(_feignClient.ServiceId);

            try
            {
                #region BuildingRequest
                BuildingRequestEventArgs buildingArgs = new BuildingRequestEventArgs(_feignClient, request.Method.ToString(), request.RequestUri, new Dictionary <string, string>());

                serviceFeignClientPipeline?.OnBuildingRequest(_feignClient, buildingArgs);
                _globalFeignClientPipeline?.OnBuildingRequest(_feignClient, buildingArgs);
                //request.Method = new HttpMethod(buildingArgs.Method);
                request.RequestUri = buildingArgs.RequestUri;
                if (buildingArgs.Headers != null && buildingArgs.Headers.Count > 0)
                {
                    foreach (var item in buildingArgs.Headers)
                    {
                        request.Headers.TryAddWithoutValidation(item.Key, item.Value);
                    }
                }
                #endregion
                request.RequestUri = LookupService(request.RequestUri);
                #region SendingRequest
                SendingRequestEventArgs sendingArgs = new SendingRequestEventArgs(_feignClient, request);
                serviceFeignClientPipeline?.OnSendingRequest(_feignClient, sendingArgs);
                _globalFeignClientPipeline?.OnSendingRequest(_feignClient, sendingArgs);
                request = sendingArgs.RequestMessage;
                #endregion

                #region CannelRequest
                CancelRequestEventArgs cancelArgs = new CancelRequestEventArgs(_feignClient, cancellationToken);
                serviceFeignClientPipeline?.OnCancelRequest(_feignClient, cancelArgs);
                _globalFeignClientPipeline?.OnCancelRequest(_feignClient, cancelArgs);
                #endregion

                return(await base.SendAsync(request, cancellationToken));
            }
            catch (Exception e)
            {
                _logger?.LogDebug(e, "Exception during SendAsync()");
                throw;
            }
            finally
            {
                request.RequestUri = current;
            }
        }
コード例 #25
0
        /// <summary>
        /// Event handler for the SendingRequest event of the Service Reference class
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public static void service_SendingRequest(object sender, SendingRequestEventArgs e)
        {
            if (e.Request.RequestUri.ToString().ToUpper().Contains("DOL.GOV"))
            {
                //Get Uri (Without host name or http://
                string requestUri = e.Request.RequestUri.PathAndQuery;

                //Build a timestamp in the format required by the API. ISO-8601
                string Timestamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ");

                //Build the signature
                string signature = Hash(string.Format("{0}&Timestamp={1}&ApiKey={2}", requestUri, Timestamp, DOLApiKey), DOLSharedSecret);

                //Add the Authorization header
                e.RequestHeaders["Authorization"] = string.Format("Timestamp={0}&ApiKey={1}&Signature={2}", Timestamp, DOLApiKey, signature);
            }
        }
コード例 #26
0
        private void SendingRequestEventHandlerScriptsVerifier(object sender, SendingRequestEventArgs e)
        {
            if (e.IsHttpRequest())
            {
                if (e.HttpRequest.RequestUri.OriginalString.Contains(Paths.StoredProceduresPathSegment))
                {
                    // Stored procedure execute validation should verify that the session token does exist.
                    if (e.HttpRequest.Method == HttpMethod.Post &&
                        !e.HttpRequest.RequestUri.OriginalString.EndsWith(Paths.StoredProceduresPathSegment))
                    {
                        Assert.IsTrue(e.HttpRequest.Headers.Contains(HttpConstants.HttpHeaders.SessionToken));
                        return;
                    }

                    Assert.IsFalse(e.HttpRequest.Headers.Contains(Microsoft.Azure.Documents.HttpConstants.HttpHeaders.SessionToken));
                }
            }
        }
コード例 #27
0
 private void SendingRequestEventHandler(object sender, SendingRequestEventArgs e)
 {
     Assert.IsFalse(e.IsHttpRequest());
     e.DocumentServiceRequest.Headers.Add(newHeaderKey, newHeaderValue);
 }
コード例 #28
0
 private void AttachTokenWithWritePermissions(object sender, SendingRequestEventArgs args)
 {
     this.AttachTokenWithWritePermissions((HttpWebRequest)args.Request);
 }
コード例 #29
0
 /// <summary>
 /// Adds to request headers.
 /// </summary>
 /// <param name="sendingRequestEventArgs">The <see cref="System.Data.Services.Client.SendingRequestEventArgs"/> instance containing the event data.</param>
 private void AddToRequestHeaders(SendingRequestEventArgs sendingRequestEventArgs)
 {
     this.AddVersionToRequest(sendingRequestEventArgs.Request);
 }
コード例 #30
0
 /// <summary>
 /// Adds the request version.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="System.Data.Services.Client.SendingRequestEventArgs"/> instance containing the event data.</param>
 private void AddRequestVersion(object sender, SendingRequestEventArgs e)
 {
     this.AddToRequestHeaders(e);
 }