public void Add(string key, string value)
 {
     _cookies.Append(key, value);
 }
Exemplo n.º 2
0
        public static void Append <TypeInput>(this IResponseCookies cookie, string key, TypeInput @object)
        {
            string objectString = JsonSerializer.Serialize(@object);

            cookie.Append(key, objectString);
        }
 public static IResponseCookies Append(this IResponseCookies cookies, IAspNetCoreCookie cookie)
 {
     cookies.Append(cookie.Key, cookie.DefaultValue, cookie.Options);
     return(cookies);
 }
Exemplo n.º 4
0
 public static void SetString(this IResponseCookies cookie, string name, string value)
 {
     cookie.Append(name, Convert.ToBase64String(value.StrToByte()));
 }
 public void SetCookies(IResponseCookies cookies, string username, string selectedName, int?page, SortState?sortState)
 {
     cookies.Append(username + "positionSelectedName", selectedName);
     cookies.Append(username + "positionPage", page.ToString());
     cookies.Append(username + "positionSortState", sortState.ToString());
 }
Exemplo n.º 6
0
 public static void SetAccessToken(this IResponseCookies cookies, string accessToken)
 {
     cookies.Append(AccessToken, accessToken);
 }
Exemplo n.º 7
0
 public void SetCookies(IResponseCookies cookies, string username, string selectedName, int?page, ViewModels.DeliveryMethods.SortViewModel.Sort?sortState)
 {
     cookies.Append(username + "deliveryMethodSelectedName", selectedName);
     cookies.Append(username + "deliveryMethodPage", page.ToString());
     cookies.Append(username + "deliveryMethodSort", sortState.ToString());
 }
Exemplo n.º 8
0
 public void ReplaceCookie(IResponseCookies responseCookies, string key, string value)
 {
     responseCookies.Delete(key);
     responseCookies.Append(key, value);
 }
Exemplo n.º 9
0
 public static void SetSessionCookie(this IResponseCookies cookies, IHostingEnvironment hostingEnvironment, string key, string value)
 {
     cookies.Append(key, value, EsfaCookieOptions.GetSessionLifetimeHttpCookieOption(hostingEnvironment));
 }
 public void SetCookies(IResponseCookies cookies, string username, string selectedCustomerName, int?page, ViewModels.CustomerProducts.SortViewModel.Sort?sortState)
 {
     cookies.Append(username + "customerProductSelectedCustomerName", selectedCustomerName);
     cookies.Append(username + "customerProductPage", page.ToString());
     cookies.Append(username + "customerProductSort", sortState.ToString());
 }
Exemplo n.º 11
0
 public static void SetJson(this IResponseCookies cookies, string key, object value, CookieOptions options)
 => cookies.Append(key, JsonConvert.SerializeObject(value), options);
Exemplo n.º 12
0
 public static void SetCultureInfoCookie(this IResponseCookies cookies, RequestCulture culture)
 {
     cookies.Delete(Localization.CurrentCultureCookieName);
     cookies.Append(Localization.CurrentCultureCookieName, CookieRequestCultureProvider.MakeCookieValue(culture));
 }
 public void SetCookies(IResponseCookies cookies, string username, string selectedName, int?page, ViewModels.Manufacturers.SortViewModel.Sort?sortState)
 {
     cookies.Append(username + "manufacturerSelectedName", selectedName);
     cookies.Append(username + "manufacturerPage", page.ToString());
     cookies.Append(username + "manufacturerSort", sortState.ToString());
 }
Exemplo n.º 14
0
 public void SetCookies(IResponseCookies cookies, string username, string selectedLastName, int?page, SortState?sortState)
 {
     cookies.Append(username + "employeeSelectedLastName", selectedLastName);
     cookies.Append(username + "employeePage", page.ToString());
     cookies.Append(username + "employeeSortState", sortState.ToString());
 }
Exemplo n.º 15
0
 /// <summary>
 /// (HttpContext)context.Response.Cookies
 /// </summary>
 public static void Set(this IResponseCookies cookies, string key, string value)
 {
     cookies.Append(key, value, new CookieOptions {
         Expires = DateTime.Now.AddMonths(1)
     });
 }
 public static void AppendAuthenticationCookie(IResponseCookies cookies,
                                               Int32 id, String cookieName)
 {
     cookies.Append(cookieName, CookieAuthenticationHandler.EncryptId(id));
 }
Exemplo n.º 17
0
        public async Task OnAuthorizationAsync(AuthorizationFilterContext context)
        {
            IServiceProvider serviceProvider            = context.HttpContext.RequestServices;
            ILogger <WxPublicAccountOAuthFilter> logger = serviceProvider.GetRequiredService <ILogger <WxPublicAccountOAuthFilter> >();

            //通过判断Cookie(网页授权Token【115】分钟)是否存在发起跳转获得code
            logger.LogDebug($"WeChatOAuthFilter Begin {context.HttpContext.Request.Path}");
            switch (OAuthLevel)
            {
            case OAuthLevels.OpenId:
                if (context.HttpContext.Request.Cookies.ContainsKey(WxConsts.COOKIE_WX_OPENID))
                {
                    return;
                }
                break;

            case OAuthLevels.OpenIdAndToken:
            case OAuthLevels.OpenIdAndUserInfo:
                if (context.HttpContext.Request.Cookies.ContainsKey(WxConsts.COOKIE_WX_OPENID) && context.HttpContext.Request.Cookies.ContainsKey(WxConsts.COOKIE_WX_WEBTOKEN))
                {
                    return;
                }
                break;

            default:
                break;
            }

            HttpRequest request = context.HttpContext.Request;

            string code  = request.Query["code"].ToString();
            string state = request.Query["state"].ToString();

            //TODO:验证Token,过期自动刷新

            #region 如果是从微信验证页面跳转回来,根据Code和State拿到OpenId等信息

            if (!string.IsNullOrEmpty(code) && !string.IsNullOrEmpty(state))
            {
                logger.LogDebug($"从微信验证页面跳转回来... code:{code}\tstate:{state}");
                WxFuncs               weChatFuncs = serviceProvider.GetRequiredService <WxFuncs>();
                IOauth2Api            oauth2Api   = serviceProvider.GetRequiredService <IOauth2Api>();
                WxPublicAccountOption option      = weChatFuncs.GetWeChatOptions();
                //通过code换取access_token,Code只能用一次
                //网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
                OAuthAccessTokenApiResult result = await oauth2Api.GetAccessTokenAsync(option.AppId, option.AppSecret, code);

                result.EnsureSuccess();
                logger.LogDebug($"AccessToken:{result.AccessToken}");

                IResponseCookies cookies = context.HttpContext.Response.Cookies;

                cookies.Append(WxConsts.COOKIE_WX_OPENID, result.OpenId, new CookieOptions()
                {
                    Path        = "/",
                    Expires     = DateTimeOffset.Now.AddDays(30),
                    HttpOnly    = true,
                    IsEssential = true,
                });

                cookies.Append(WxConsts.COOKIE_WX_WEBTOKEN, result.AccessToken, new CookieOptions()
                {
                    Path        = "/",
                    Expires     = DateTimeOffset.Now.AddMinutes(115),
                    HttpOnly    = true,
                    IsEssential = true,
                });

                context.HttpContext.Items[WxConsts.COOKIE_WX_OPENID]   = result.OpenId;
                context.HttpContext.Items[WxConsts.COOKIE_WX_WEBTOKEN] = result.AccessToken;
                logger.LogDebug("微信网页授权完成...");
                return;
            }

            #endregion 如果是从微信验证页面跳转回来,根据Code和State拿到OpenId等信息

            else if (!context.HttpContext.Request.Cookies.ContainsKey(WxConsts.COOKIE_WX_OPENID) || !context.HttpContext.Request.Cookies.ContainsKey(WxConsts.COOKIE_WX_WEBTOKEN))
            {
                string  redirectUrl          = UriHelper.GetDisplayUrl(request);
                WxFuncs weChatFuncs          = serviceProvider.GetRequiredService <WxFuncs>();
                WxPublicAccountOption option = weChatFuncs.GetWeChatOptions();
                //获取授权Url
                string url = GetAuthorizeUrl(redirectUrl, _state, option.AppId, OAuthLevel == OAuthLevels.OpenIdAndUserInfo ? OAuthScopes.snsapi_userinfo : OAuthScopes.snsapi_base);
                logger.LogDebug($"跳转至微信服务器获取授权...{Environment.NewLine}RedirectUrl:{redirectUrl}{Environment.NewLine}AuthUrl:{url}");
                context.Result = new RedirectResult(url);
            }
            else
            {
                logger.LogError($"授权出错,请检查...{request.Path}");
                context.Result = new ContentResult {
                    Content = "授权出错,请检查!"
                };
            }
        }
Exemplo n.º 18
0
 /// <summary>Set the cookie拡張メソッド</summary>
 /// <param name="responseCookies">拡張</param>
 /// <param name="key">string</param>
 /// <param name="value">string</param>
 /// <param name="option">CookieOptions</param>
 public static void Set(this IResponseCookies responseCookies, string key, string value, CookieOptions option)
 {
     responseCookies.Delete(key);
     responseCookies.Append(key, value, option);
 }
Exemplo n.º 19
0
 private void ReplaceCookies(IResponseCookies cookies, string cookie)
 {
     cookies.Delete(_cartName);
     cookies.Append(_cartName, cookie);
 }
Exemplo n.º 20
0
 public static void SetRefreshToken(this IResponseCookies cookies, string renewalToken)
 {
     cookies.Append(RefreshToken, renewalToken);
 }
Exemplo n.º 21
0
 public static void SetProposedStartDate(this IResponseCookies cookies, IHostingEnvironment hostingEnvironment, Guid vacancyId, DateTime date)
 {
     cookies.Append(string.Format(CookieNames.VacancyProposedStartDate, vacancyId), date.ToShortDateString(), EsfaCookieOptions.GetSessionLifetimeHttpCookieOption(hostingEnvironment));
 }
Exemplo n.º 22
0
 public void SetCookies(IResponseCookies cookies, string username, string selectedName, int?page, ViewModels.Employees.SortViewModel.Sort?sortState)
 {
     cookies.Append(username + "employeeSelectedName", selectedName);
     cookies.Append(username + "employeePage", page.ToString());
     cookies.Append(username + "employeeSort", sortState.ToString());
 }
 private void Set(IResponseCookies cookieCollection, string key, string value, CookieOptions options) => cookieCollection.Append(key, value, options);