Exemple #1
0
        /// <summary>
        /// 获取wms的Token,并存储到cookie中
        /// </summary>
        /// <returns></returns>
        protected async Task <string> GetWMSOauthToken()
        {
            //处理SSL问题
            var httpClientHandler = new HttpClientHandler
            {
                ServerCertificateCustomValidationCallback = (message, certificate2, arg3, arg4) => true
            };

            using (var http = new HttpClient(httpClientHandler))
            {
                var clinetName = AppConfigurtaionServices.Configuration["OauthAccount:UserName"].ToString();
                var pwd        = AppConfigurtaionServices.Configuration["OauthAccount:Password"].ToString();
                var account    = new TokenRequest {
                    UserName = clinetName, Password = pwd
                };
                var    content     = new StringContent(account.ToJson(), Encoding.UTF8, "application/json");
                var    requestUrl  = AppConfigurtaionServices.Configuration["WMSApi:domain"].ToString() + "/api/Oauth/authenticate";
                var    response    = http.PostAsync(requestUrl, content).Result.Content.ReadAsStringAsync();
                string resultState = await response;
                var    tokenResult = resultState.ToObj <TokenResult>();
                if (tokenResult.res_state)
                {
                    _workContext.CurrentHttpContext.Response.Cookies.Delete("wms_token");
                    _workContext.CurrentHttpContext.Response.Cookies.Append("wms_token", tokenResult.access_token,
                                                                            new CookieOptions
                    {
                        HttpOnly    = true,
                        IsEssential = true,
                        Expires     = DateTime.Now.AddDays(1)
                    });
                    return(tokenResult.access_token);
                }
                else
                {
                    return("");
                }
            }
        }