コード例 #1
0
        public static void AddApiKeyAuthorizationHeader(this System.Net.Http.Headers.HttpRequestHeaders headers,
                                                        string clientID,
                                                        string secret,
                                                        DateTimeOffset utcNow,
                                                        TimeBasedTokenGenerator tokenGenerator = null)
        {
            tokenGenerator = tokenGenerator ?? _defaultTokenGenerator;

            string token = Microsoft.AspNetCore.WebUtilities.Base64UrlTextEncoder.Encode(tokenGenerator.ComputeToken(clientID, secret, utcNow));

            headers.Add("Authorization", $"TAPIKEY {clientID}:{token}");
        }
コード例 #2
0
 /// <summary>
 /// ヘッダーから特定の値を取り出す
 /// </summary>
 /// <param name="name">対象の名前</param>
 /// <returns>結果</returns>
 public static string GetHeaderValue(string name, System.Net.Http.Headers.HttpRequestHeaders requestheaders)
 {
     if (requestheaders == null)
     {
         return(null);
     }
     foreach (string tempValue in requestheaders.GetValues(name))
     {
         return(tempValue);
     }
     return(null);
 }
コード例 #3
0
        private string GetFirstHeaderValue(System.Net.Http.Headers.HttpRequestHeaders httpRequestHeaders, string headerName)
        {
            string retVal = null;
            IEnumerable <String> values = null;

            if (httpRequestHeaders.TryGetValues(headerName, out values) && values != null)
            {
                retVal = values.FirstOrDefault();
            }

            return(retVal);
        }
コード例 #4
0
        /**
         * Helper function. Returns Time To Live value for a document according to either the value
         * in seconds corresponding to custom header "Custom-Ttl" or, if no such header exists, a
         * default value of 30 seconds.
         *
         * returns:
         *  int
         *      - Time To Live value to be passed to repository .Add and .Get function parameters.
         */
        private int GetTimeToLive()
        {
            int TimeToLive = 30;

            System.Net.Http.Headers.HttpRequestHeaders headers = Request.Headers;
            if (headers.Contains("Custom-Ttl"))
            {
                String customTtl = headers.GetValues("Custom-Ttl").First();
                TimeToLive = Convert.ToInt32(customTtl);
            }
            return(TimeToLive);
        }
コード例 #5
0
ファイル: MainWindow.xaml.cs プロジェクト: cansou/sharpQQ
        public void get(String url)
        {
            HttpClientHandler handler = new HttpClientHandler();

            handler.CookieContainer.Add(new Cookie("name", "leegean", "/", "baidu.com"));
            HttpClient httpClient = new HttpClient(handler);

            System.Net.Http.Headers.HttpRequestHeaders reqHeader = httpClient.DefaultRequestHeaders;
            reqHeader.Host = "baidu.com";
            // 创建一个异步GET请求,当请求返回时继续处理
            httpClient.GetAsync(url).ContinueWith(
                (requestTask) =>
            {
                if (requestTask.IsFaulted)
                {
                    Console.WriteLine(requestTask.Exception);
                }
                else
                {
                    HttpResponseMessage response = requestTask.Result;
                    headers    = response.Headers;
                    enumerator = headers.GetEnumerator();
                    while (enumerator.MoveNext())
                    {
                        KeyValuePair <String, IEnumerable <String> > pair = enumerator.Current;
                        Console.WriteLine(pair.Key + "        " + pair.Value);
                    }
                    CookieCollection cookies = handler.CookieContainer.GetCookies(new Uri(url));

                    foreach (Cookie cookie in cookies)
                    {
                        Console.WriteLine(cookie.Name + "        " + cookie.Value);
                    }

                    // 确认响应成功,否则抛出异常
                    if (response.IsSuccessStatusCode)
                    {
                        response.Content.ReadAsStringAsync().ContinueWith(
                            (readTask) => Console.WriteLine(readTask.Result.Substring(0, 100)));
                    }
                    else if (response.StatusCode != HttpStatusCode.OK)
                    {
                        Console.WriteLine(response.StatusCode + "      " + response.ReasonPhrase);
                    }
                }
            });



            Console.WriteLine("Hit enter to exit...");
            //Console.ReadLine();
        }
コード例 #6
0
ファイル: Utilities.cs プロジェクト: Erns/XWTWebAPI
        public static bool IsValidated(System.Net.Http.Headers.HttpRequestHeaders headers)
        {
            bool blnReturn = false;

            try
            {
                //Verify that the username and API key passed through request are valid
                if (headers.Authorization != null)
                {
                    string   authenticationToken        = headers.Authorization.Parameter;
                    string   decodedAuthenticationToken = Encoding.UTF8.GetString(Convert.FromBase64String(authenticationToken));
                    string[] usernamePasswordArray      = decodedAuthenticationToken.Split(':');
                    string   username = usernamePasswordArray[0];
                    string   password = usernamePasswordArray[1];

                    using (SqlConnection sqlConn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["XWTWebConnectionString"].ToString()))
                    {
                        using (SqlCommand sqlCmd = new SqlCommand("dbo.spUserAccounts_VALIDATE", sqlConn))
                        {
                            sqlConn.Open();
                            sqlCmd.CommandType = System.Data.CommandType.StoredProcedure;
                            sqlCmd.Parameters.AddWithValue("@UserName", username);
                            sqlCmd.Parameters.AddWithValue("@PasswordAPI", password);

                            SqlParameter outputParameter = new SqlParameter("@Id", SqlDbType.Int);
                            outputParameter.Direction = ParameterDirection.Output;

                            sqlCmd.Parameters.Add(outputParameter);

                            int id = 0;
                            using (SqlDataReader sqlRdr = sqlCmd.ExecuteReader())
                            {
                                id = Convert.ToInt32(outputParameter.Value);
                            }

                            if (id > 0)
                            {
                                blnReturn = true;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //return ex.Message;
                Console.Write(string.Format("XWTWebAPI.Utilities.IsValidated{0}Error:{1}", Environment.NewLine, ex.Message));
                blnReturn = false;
            }

            return(blnReturn);
        }
コード例 #7
0
        private bool AddAuthorizationError(System.Net.Http.Headers.HttpRequestHeaders headers, string errorMessage)
        {
            try
            {
                headers.Add("UnauthorizedMessage", errorMessage);
            }
            catch (Exception)
            {
                return(false);
            }

            return(true);
        }
コード例 #8
0
        public async Task <IHttpActionResult> GetDetail(int id, [FromUri] int currentPage, [FromUri] string search)
        {
            string token = "";

            System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;
            if (headers.Contains("token"))
            {
                foreach (var s in headers.GetValues("token"))
                {
                    token = s;
                }
            }
            return(Ok(await repository.GetList(id, currentPage, token, search)));
        }
コード例 #9
0
        public IHttpActionResult GetUserRole(string userName, string userPassword)
        {
            try
            {
                System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;

                UserBL user     = new UserBL();
                var    userRole = user.GetUserRole(userName, userPassword);
                return(Ok(userRole));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #10
0
        public IHttpActionResult GetSubCategory(string version, int?CategoryId)
        {
            try
            {
                #region Authentication Token
                //System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;
                //string token = string.Empty;
                //string pwd = string.Empty;
                //if (headers.Contains("username"))
                //{
                //    token = headers.GetValues("username").First();
                //}
                //if (headers.Contains("password"))
                //{
                //    pwd = headers.GetValues("password").First();
                //}
                #endregion

                System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;
                string x_StateName    = string.Empty;
                string x_DistrictName = string.Empty;
                if (headers.Contains("x_StateName"))
                {
                    x_StateName = headers.GetValues("x_StateName").First();
                }
                if (headers.Contains("x_DistrictName"))
                {
                    x_DistrictName = headers.GetValues("x_DistrictName").First();
                }
                DataSet ds1 = new DataSet();
                //if (CategoryId == 2)
                //{
                //    ds1 = LiveStocks.GetCropDetails(version, CategoryId);
                //}
                //else
                //{
                ds1 = LiveStocks.GetSubCategories(version, CategoryId, true, x_StateName, x_DistrictName);
                //}
                ds1.Tables[0].TableName = "SubCategory";
                return(Ok(new { ProductsApiReponse = ds1, Status = true }));
            }
            catch (Exception ex)
            {
                LogDal.ErrorLog(this.GetType().Name, MethodBase.GetCurrentMethod().Name, ex.Message, 0);
                return(Ok(new { ProductsApiReponse = "", Status = false }));
            }
        }
コード例 #11
0
        private string GetAuthorizationError(System.Net.Http.Headers.HttpRequestHeaders headers)
        {
            try
            {
                headers.TryGetValues("UnauthorizedMessage", out IEnumerable <string> unauthorizedMessages);

                if (unauthorizedMessages != null && unauthorizedMessages.Count() > 0)
                {
                    return(unauthorizedMessages.FirstOrDefault());
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }

            return(string.Empty);
        }
コード例 #12
0
        public static NetworkCredential ParseHttpBasicAuth(System.Net.Http.Headers.HttpRequestHeaders headers)
        {
            var authorizationHeader = headers.Authorization;

            if (authorizationHeader != null && string.Equals(authorizationHeader.Scheme, HttpBasicAuthScheme, StringComparison.Ordinal))
            {
                string   base64 = authorizationHeader.Parameter;
                byte[]   bits   = Convert.FromBase64String(base64);
                string   usernameColonPassword = HttpBasicEncoding.GetString(bits);
                string[] usernameAndPassword   = usernameColonPassword.Split(ColonSeparator, 2);
                if (usernameAndPassword.Length == 2)
                {
                    return(new NetworkCredential(usernameAndPassword[0], usernameAndPassword[1]));
                }
            }

            return(null);
        }
コード例 #13
0
        public IHttpActionResult GenerateAccessToken()
        {
            string bearerAuth = string.Empty;
            string grantType  = string.Empty;

            System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;
            if (headers.Contains("Authorization"))
            {
                bearerAuth = headers.GetValues("Authorization").First();
                if (!IsBearerValid(bearerAuth))
                {
                    return(Unauthorized());
                }
                ;
            }
            else
            {
                return(Unauthorized());
            }
            if (headers.Contains("Grant-type"))
            {
                grantType = headers.GetValues("Grant-type").First();
                if (!grantType.Equals("client_credentials"))
                {
                    return(Unauthorized());
                }
                ;
            }
            else
            {
                return(Unauthorized());
            }

            var response = NameEnquiryLogic.GenerateToken();

            if (response != null)
            {
                return(Ok(response));
            }
            else
            {
                return(NotFound());
            }
        }
コード例 #14
0
        public AddProjectResponse AddProject(string partnerName, ProjectDTO projectDTO)
        {
            int userIdentifier, userId = -1;

            try
            {
                System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;

                if (headers.Contains("user-identifier") && int.TryParse(headers.GetValues("user-identifier").First(), out userIdentifier))
                {
                    userId = (userIdentifier > 0) ? userIdentifier : -1;
                }
            }
            catch {
                userId = -1;
            }

            // add project inot DB
            return(new Facade.ProjectFacade().AddProject(partnerName, userId, projectDTO));
        }
コード例 #15
0
        public IHttpActionResult GetProductsBySearch(string version, string SearchText)
        {
            try
            {
                System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;
                string x_StateName    = string.Empty;
                string x_DistrictName = string.Empty;
                if (headers.Contains("state"))
                {
                    x_StateName = headers.GetValues("state").First().ToLower();
                }
                if (headers.Contains("district"))
                {
                    x_DistrictName = headers.GetValues("district").First().ToLower();
                }

                DataSet ds  = new DataSet();
                DataSet ds1 = new DataSet();
                ds = LiveStocks.GetProductsBySearch(version, x_StateName, x_DistrictName, SearchText);

                ds.Tables[0].TableName = "Product";
                var     productData  = ds.Tables[0].AsEnumerable();
                var     distinctData = productData.Select(x => x.Field <string>("ProductHindiName")).Distinct();
                DataSet ds2          = new DataSet();
                ds2.Tables.Add(ds.Tables[0].Copy());
                //ds2.Tables.Add(ds1.Tables[0].Copy());
                if (ds2.Tables[0].Rows.Count > 0)
                {
                    return(Ok(new { ProductsApiReponse = ds2, Status = true }));
                }
                else
                {
                    return(Ok(new { ProductsApiReponse = "", Status = false }));
                }
            }
            catch (Exception ex)
            {
                LogDal.ErrorLog(this.GetType().Name, MethodBase.GetCurrentMethod().Name, ex.Message, 0);
                return(Ok(new { ProductsApiReponse = "", Status = false }));
            }
        }
コード例 #16
0
        public IHttpActionResult DoDebit(DebitRequest req)
        {
            string bearerAccessToken = string.Empty;
            string signature         = string.Empty;

            System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;
            if (headers.Contains("Authorization"))
            {
                bearerAccessToken = headers.GetValues("Authorization").First();
                if (!bearerAccessToken.Trim().StartsWith("Bearer "))
                {
                    return(Unauthorized());
                }
                ;
                if (!Utils.IsAccessTokenValid(bearerAccessToken.Replace("Bearer ", "")))
                {
                    return(Unauthorized());
                }
                ;
            }
            else
            {
                return(Unauthorized());
            }
            if (headers.Contains("signature"))
            {
                signature = headers.GetValues("signature").First();
                if (!IsSignatureValid(signature, req))
                {
                    return(Unauthorized());
                }
                ;
            }
            else
            {
                return(Unauthorized());
            }
            var response = NameEnquiryLogic.DoDebit(req);

            return(Ok(response));
        }
コード例 #17
0
        /// <summary>
        /// Copies headers from one <see cref="System.Net.Http.HttpRequestMessage"/> instance to another.
        /// </summary>
        /// <param name="source">The source <see cref="System.Net.Http.HttpRequestMessage"/> to copy from.</param>
        /// <param name="destination">The destination <see cref="System.Net.Http.HttpRequestMessage"/> to copy to.</param>
        public static void CopyHeadersTo(this System.Net.Http.Headers.HttpRequestHeaders source, System.Net.Http.Headers.HttpRequestHeaders destination)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }
            if (destination == null)
            {
                throw new ArgumentNullException(nameof(destination));
            }

            foreach (var header in source)
            {
                if (destination.Contains(header.Key))
                {
                    destination.Remove(header.Key);
                }

                destination.Add(header.Key, header.Value);
            }
        }
コード例 #18
0
        public IRequestHeader Parse(System.Net.Http.Headers.HttpRequestHeaders HttpRequestHeaders)
        {
            IEnumerable <string> IfNoneExist;

            if (HttpRequestHeaders.TryGetValues(_IfNoneExistHeader, out IfNoneExist))
            {
                this.IfNoneExist = IfNoneExist.FirstOrDefault();
            }

            IEnumerable <string> IfModifiedSince;

            if (HttpRequestHeaders.TryGetValues(_IfModifiedSinceHeader, out IfModifiedSince))
            {
                this.IfModifiedSince = IfModifiedSince.FirstOrDefault();
            }

            IEnumerable <string> IfNoneMatchHeader;

            if (HttpRequestHeaders.TryGetValues(_IfNoneMatchHeader, out IfNoneMatchHeader))
            {
                this.IfNoneMatch = IfNoneMatchHeader.FirstOrDefault();
            }

            IEnumerable <string> IfMatchHeader;

            if (HttpRequestHeaders.TryGetValues(_IfMatchHeader, out IfMatchHeader))
            {
                this.IfMatch = IfMatchHeader.FirstOrDefault();
            }

            IEnumerable <string> PreferHeader;

            if (HttpRequestHeaders.TryGetValues(_PreferHeader, out PreferHeader))
            {
                this.Prefer.Set(PreferHeader.FirstOrDefault());
            }

            return(this);
        }
コード例 #19
0
        private string GetCanonicalizedHeaders(System.Net.Http.Headers.HttpRequestHeaders requestHeaders, System.Net.Http.Headers.HttpContentHeaders contentHeaders = null)
        {
            string canonicalizedHeaders = "";
            //assuming orderby does the lexigraphical ordering required here?
            var headers = requestHeaders.Where(h => h.Key.StartsWith("x-ms-"));

            if (contentHeaders != null)
            {
                headers = headers.Union(contentHeaders.Where(h => h.Key.StartsWith("x-ms-")));
            }
            headers = headers.GroupBy(g => g.Key).Select(g => g.First()).OrderBy(h => h.Key);
            foreach (var header in headers)
            {
                canonicalizedHeaders += header.Key.ToLower() + ":";
                foreach (var headerValue in header.Value)
                {
                    canonicalizedHeaders += headerValue + ",";
                }
                canonicalizedHeaders = canonicalizedHeaders.TrimEnd(',') + "\n";
            }
            return(canonicalizedHeaders.TrimEnd('\n'));
        }
コード例 #20
0
        public dynamic GetPSLogin(dynamic data)
        {
            string jsondata = JsonConvert.SerializeObject(data);             //token_gen.Authorize_aesdecrpty(data);

            try
            {
                System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;

                //if (headers.Contains("Ftype") || headers.Contains("FUsername") || headers.Contains("Newpassword") || headers.Contains("Captcha") || headers.Contains("ConfirmCaptch"))
                //{
                //	val.Ftype = headers.GetValues("Ftype").First();
                //	val.FUsername = headers.GetValues("FUsername").First();
                //	val.Newpassword = headers.GetValues("Newpassword").First();
                //	val.Captcha = headers.GetValues("Captcha").First();
                //	val.ConfirmCaptch = headers.GetValues("ConfirmCaptch").First();
                //	val.Ftype = headers.GetValues("Ftype").First();

                //	return Ok(_Loginhel.GetLogin(val));
                //}
                string mappath   = HttpContext.Current.Server.MapPath("LoginLogs");
                Task   WriteTask = Task.Factory.StartNew(() => new Logdatafile().Write_Log(mappath, jsondata));

                LoginModel root = JsonConvert.DeserializeObject <LoginModel>(jsondata);
                return(Ok(_Loginhel.GetLogin(root)));



                //LoginModel val = JsonConvert.DeserializeObject<LoginModel>(jsondata);


                //	return "Success";
            }
            catch (Exception ex)
            {
                _response.Status = 102;
                _response.Reason = _Loginhel.ErrorMessage;
                return(Ok(_response));
            }
        }
コード例 #21
0
        public IHttpActionResult DeleteCSUser(int id)
        {
            // sm ------ start
            System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;

            if (!headers.Contains("secretkey") || (headers.Contains("secretkey") &&
                                                   headers.GetValues("secretkey").First() != "secret"))
            {
                // return Unauthorized();  this does not work as response.IsSuccessStatusCode==true  (why????).
                //  return NotFound();
                return(BadRequest());
            }
            // sm end

            CSUser csUser = repository.GetCSUserByID(id);

            if (csUser == null)
            {
                return(NotFound());
            }
            repository.DeleteCSUser(csUser);
            return(Ok(csUser));
        }
コード例 #22
0
        // POST api/values
        //[SwaggerOperation("Create")]
        //[SwaggerResponse(HttpStatusCode.Created)]
        public HttpResponseMessage Post([FromBody]  Notifications value)
        {
            System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;
            bool authenticated = BasicAuth.Authenticate(headers);

            if (authenticated == false)
            {
                return(new HttpResponseMessage(HttpStatusCode.Unauthorized));
            }

            var           context      = new SMSDeliveryNotificationsDB();
            Notifications notification = new Notifications();

            notification.uniqueid = value.number + "/" + DateTime.Now.ToString();
            notification.number   = value.number;
            notification.status   = value.status;
            notification.datetime = value.datetime;

            context.Notifications.Add(notification);
            context.SaveChanges();

            return(new HttpResponseMessage(HttpStatusCode.Accepted));
        }
コード例 #23
0
        private IApiResult VerificationHeaders(System.Net.Http.Headers.HttpRequestHeaders headers)
        {
            if (!headers.Contains("Authorization"))
            {
                return(new IApiResult()
                {
                    code = Interface.StatusCode.accreditation, message = "Lack of authentication parameters.", result = new { a = "a" }
                });
            }
            string authorization = string.Join("", headers.GetValues("Authorization")); // 格式: Authorization@地图类型

            string[] arr  = authorization.Split('@');
            string[] keys = new string[] { "MGOO", "CARRENT" };
            authorization = arr[0];
            if (!keys.Contains(authorization) || arr.Length != 2)
            {
                return(new IApiResult()
                {
                    code = Interface.StatusCode.accreditation, message = "Authentication failure."
                });
            }

            return(null);
        }
コード例 #24
0
        public IHttpActionResult Get(int id)
        {
            System.Net.Http.Headers.HttpRequestHeaders headers = this.Request.Headers;
            string token = string.Empty;
            string pwd   = string.Empty;

            if (headers.Contains("username"))
            {
                token = headers.GetValues("username").First();
            }
            if (headers.Contains("password"))
            {
                pwd = headers.GetValues("password").First();
            }
            //code to authenticate and return some thing
            int userId = _userService.GetByUserNameAndPassword(token, pwd).Id;


            if (userId == 0)
            {
                return(NotFound());
            }
            return(Ok(userId));
        }
コード例 #25
0
 private static void ReplaceAppToken(this System.Net.Http.Headers.HttpRequestHeaders headers)
 {
     const string name = "X-App-Token";
     headers.Remove(name);
     headers.Add(name, GetCoolapkAppToken());
 }
コード例 #26
0
 public HttpRequestHeaders()
 {
     _headers = new HttpRequestMessage().Headers;
     _headers.Add("existing_simple_header", "existing_value");
     _headers.Add("existing_complex_header", new[] { "existing_value_01", "existing_value_02" });
 }
コード例 #27
0
ファイル: HttpRequestHeaders.cs プロジェクト: Theorem/MockNet
 internal HttpRequestHeaders(SystemHttpRequestHeaders store, SystemHttpContentHeaders contentHeadersStore)
 {
     this.store     = store ?? throw new ArgumentNullException(nameof(store));
     contentHeaders = new HttpContentHeaders(contentHeadersStore);
 }
コード例 #28
0
ファイル: Router.cs プロジェクト: GDuggi/DemoTest
 private static String HeadersToString(System.Net.Http.Headers.HttpRequestHeaders headers)
 {
     return(String.Join("\n", headers.Select(x =>
                                             String.Format("\t{0}={1}", x.Key, String.Join(",", x.Value)))
                        ));
 }
コード例 #29
0
 private void SetAuthenticationHeaders(System.Net.Http.Headers.HttpRequestHeaders headers, AuthorizationData auth)
 {
     headers.Add("x-xbl-contract-version", "2");
     headers.Add("Authorization", $"XBL3.0 x={auth.DisplayClaims.xui[0].uhs};{auth.Token}");
     headers.Add("Accept-Language", LocalLang);
 }
コード例 #30
0
 public static void CopyHeadersTo(this System.Net.Http.Headers.HttpRequestHeaders source, System.Net.Http.Headers.HttpRequestHeaders destination)
 {
     Helper.Throw();
 }