标签: httpcookie

如何在C#中创建非持久性(内存中)http cookie?

当用户关闭他们的浏览器时,我希望我的cookie消失 - 我已经设置了一些看起来很有前途的属性,但是即使在关闭整个浏览器之后我的cookie也会恢复生存.

HttpCookie cookie = new HttpCookie("mycookie", "abc");
cookie.HttpOnly = true; //Seems to only affect script access
cookie.Secure = true; //Seems to affect only https transport
Run Code Online (Sandbox Code Playgroud)

我错过了什么属性或方法来实现内存cookie?

c# asp.net cookies httpcookie

6
推荐指数
3
解决办法
8510
查看次数

异常调用Add.部分cookie无效

我正在使用的Add方法System.Net.CookieContainer.它多年来一直运作良好,但我突然得到:

用"2"参数调用"添加"的异常:"'值'='321,386,%2F%3Fa%3D1,http%3A%2F%2Fwww.xxxx.com%2Fpremium%2Fmoney'部分cookie是无效的."

我正在添加从网页返回的cookie.网页的原始标题是:

...
_chartbeat_uuniq=1;
_chartbeat5=321,386,%2F%3Fa%3D1,http%3A%2F%2Fwww.xxx.com%2Fpremium%2Fmoney;
gs_p_GSN-375009-Z=0;
...
Run Code Online (Sandbox Code Playgroud)

cookie值有什么问题?是逗号吗?

.net c# httpcookie

6
推荐指数
1
解决办法
5397
查看次数

如何将我的请求发送到ember应用程序中的后端?

在Ember中有没有办法将请求发送到后端的cookie?

例如:如果我的客户端URL是protocol://example.com.当我导航到时,属于同一域的cookie将位于请求标头中protocol://example.com/profile.但是,它们不会在后续请求中保留配置文件路由模型方法 - >示例到protocol://example-host/posts.如何使这些cookie持续存在?

/app/routes/profile.js:

import Ember from "ember";
import AuthenticatedRouteMixin from "simple-auth/mixins/authenticated-route-mixin";

export default Ember.Route.extend({
  model() {
    return this.store.findAll("post");
  },

  renderTemplate() {
    this.render("header", {
      outlet: "header"
    });

    this.render("profile");
  }
});
Run Code Online (Sandbox Code Playgroud)

/app/adapters/application:

import Ember from "ember";
import DS from "ember-data";

export default DS.RESTAdapter.extend({
  host: 'http://example-host.com',
  corsWithCredentials: true,
  crossDomain: true,
  xhrFields: { withCredentials: true }
});
Run Code Online (Sandbox Code Playgroud)

cookies httpcookie ember.js ember-data ember-cli

6
推荐指数
1
解决办法
2871
查看次数

Nginx 如果 cookie 存在不同的位置

我有一个使用预渲染服务的 nginx 配置文件,我想检查 cookie 名称 access_token 是否存在,然后提供本地角度,如果 cookie 不存在(用户未登录),则代理传递请求到预渲染服务,

这是我的 nginx 配置文件,

proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=prerendercloud_cache:10m max_size=100m inactive=60m use_temp_path=off;

server {
    set \$root /var/www/;
    resolver 8.8.8.8;
    set \$prerendercloud 'service.prerender.cloud';

    listen 80;
    server_name _; 

    location = / {
        if (\$http_cookie ~* "access_token" ) {
            root \$root;
            try_files \$uri \$uri/ /index.html;
            index index.html;
        }

        root \$root;
        try_files \$uri @prerendercloud;
    }

    location / {
        root \$root;
        try_files \$uri \$uri/ /index.html;
        index index.html;
    }



    location @prerendercloud {
        proxy_set_header Accept-Encoding "gzip";
        gunzip on;
        root \$root; …
Run Code Online (Sandbox Code Playgroud)

cookies nginx httpcookie proxypass

6
推荐指数
1
解决办法
6848
查看次数

Set-Cookie 在 axios 调用中无法正常工作

解释

在这里,我使用 Axios 向 ABC.com/Users/Login 发送了一个 get req,之后我向 ABC.com/Users/Login 发送了一个包含表单数据和 Cookie 的发布请求。

但它不能正常工作。它在邮递员中正常工作

我的代码

axios.get('ABC.com/Users/Login')
.then(async response => {

   console.log("call login page");
   let tokenKey = "__RequestVerificationToken";
   let tokenValue = "CfDJ8DF1Ubmz1lpEibYtvvnYRTVXaJ-HWILEtqE_A3bGmDrD-yyKyJPbYK7qrcS9AIzezPo5- 
    tOWmcXs6WgYThZP-5qo1o1XXpalkJDEPnBtnVa7EhaUYbY2XNcANuugyWgkIf3-O2-_f5h7mNu960qGIaM";
   const userName="XYZ";
   const pass="test@123";

   let form=new FormData();
   form.append('UserName', userName);
   form.append('Password', pass);
   form.append([tokenKey], tokenValue);

   headers={
        'Cookie':response.headers['set-cookie'];
   }

   await axios.post('ABC.com/Users/Login', form, 
   { headers: {...form.getHeaders(),...headers}})
   .then(async response => {
        console.log(`Login success in ${userName}`);
        console.log("response",response.data);
   })
   .catch(error => {
       console.log(error);
   });

}
.catch(error => {
console.log(error);
});
Run Code Online (Sandbox Code Playgroud)

在第一次 Axios 通话中,我得到:-

Set-Cookie: .AspNetCore.Antiforgery.b02ILwhXMuw=CfDJ8DF1Ubmz1lpEibYtvvnYRTXz_0rOkGhY6OXEw3d3vsDNG81V4IaMPfVZm5Hk3_icgp_ToLDG9xKu2mcM1VtEOMnSCktfZwG7Dj9_549SUiKht6Yv33pozagGjseFsfXI74wBwu-mMJkzgwfPx3jS4OA; path=/; …
Run Code Online (Sandbox Code Playgroud)

javascript cookies httpcookie setcookie axios

6
推荐指数
2
解决办法
3万
查看次数

asp.net 中的 cookie 问题。值在 response.redirect 后恢复

我在这上面花了很多时间,这太疯狂了。

我有一个包含“setcookie”函数的页面基类,这基本上是这样的:

        Dim context As HttpContext = System.Web.HttpContext.Current

        If context.Request.Cookies(cookieName) Is Nothing Then
            Dim cookie As HttpCookie
            cookie.Value = cookieValue
            cookie.Expires = DateTime.Now.AddDays(7)
            context.Response.Cookies.Add(cookie)
        Else
            Dim cookie As HttpCookie = context.Request.Cookies(cookieName)
            cookie.Expires = DateTime.Now.AddDays(7)
            cookie.Value = cookieValue
        End If
Run Code Online (Sandbox Code Playgroud)

该函数由一个简单的 aspx 页面调用。由于这是在测试环境中,因此我正在使用的 cookie 中有一个先前的值“123”。如果我使用调试和监视窗口,我会看到值成功更改为“168”。

我在一行上有一个调试断点,它是:

           Response.Redirect("overview.aspx", False)
Run Code Online (Sandbox Code Playgroud)

当断点处于活动状态时,观察窗口中的值为:

    currProjectID   168 Integer
    HttpContext.Current.Request.Cookies("currProjectID").Value  "168"   String
Run Code Online (Sandbox Code Playgroud)

(currProjectID 是 basepage 类中的一个属性,它使用上述函数获取/设置 cookie)

现在,第二个我使用“F10”离开上面的断点线,变量的值发生了变化!

    HttpContext.Current.Request.Cookies("currProjectID").Value  "123"   String
    currProjectID   123 Integer
Run Code Online (Sandbox Code Playgroud)

疯了吧!代码无处可去,调试点直接在上面的“response.redirect”行下方,但值立即更改为之前的值!“setcookie”例程附近没有任何东西,所以请有人拯救我的精神错乱并告诉我出了什么问题!?

asp.net cookies response.redirect httpcookie

5
推荐指数
1
解决办法
3442
查看次数

如何使用C#在webapi中读取多个同名的cookie

我们创建了两个具有相同名称的 cookie。当我迭代循环时,我总是得到第一个 cookie。有没有办法分别访问这两个cookie?

        if (Request.Cookies.AllKeys.Where(x => x == "test").Count() > 1)
        {
            foreach (var cookie in Request.Cookies.AllKeys)
            {
                if (Request.Cookies[cookie].Name == "test")
                {
                    var temp = System.Web.HttpContext.Current.Request.Cookies["test"];
                    temp.Expires = DateTime.Now.AddDays(-1);
                    Response.Cookies.Add(temp);
                }
            }               
        };
Run Code Online (Sandbox Code Playgroud)

.net c# httpcookie c#-4.0 asp.net-web-api

5
推荐指数
1
解决办法
1837
查看次数

AWS CloudFront 签名的 cookie + S3 可在 REST 客户端应用程序中运行,但不能在浏览器中运行

我尽可能详细地提出这个问题,以便遇到相同问题的其他人都将拥有全面的资源来解决这个问题并使其发挥作用。

目标

目标是使用签名 cookie,以便我的应用程序中经过身份验证的用户可以自由访问他们的任何文件,而无需签署 URL。

S3 和 CloudFront 配置

我很确定其中大部分都是正确的,但为了提供完整的图片,我将包括我所拥有的设置。

S3配置

我有一个桶,我们可以打电话my-storage。它具有以下 CORS 配置:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>HEAD</AllowedMethod>
    <AllowedMethod>GET</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

桶策略是:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity xxx"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::my-storage/*"
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::my-storage/*",
            "Condition": {
                "StringLike": {
                    "aws:Referer": "http://localhost:8080/*"
                }
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

本地主机异常只是为了让我可以在本地构建/测试我的应用程序,因为 HTTP cookie 由于跨域问题而无法正常工作。

CloudFront分布

我有一个使用此存储桶作为源的 CloudFront 发行版。在本文中,我们将称 …

cookies httpcookie amazon-web-services cors amazon-cloudfront

5
推荐指数
1
解决办法
2628
查看次数

如何为 ASP.NET Core 正确设置 cookie (HttpCookie)

以下是我尝试为用户设置 cookie 的几种不同方法。我不明白为什么我在 HttpCookie 上收到错误。如果有人知道我做错了什么,请告诉我,或者如果您需要有关我的问题的更多详细信息。

在此输入图像描述

在此输入图像描述

c# httpcookie asp.net-core-mvc asp.net-core

5
推荐指数
1
解决办法
8335
查看次数

AWS Lambda Set-Cookie 标头未在浏览器中设置

我正在尝试在我的 aws lambda 函数响应中设置 cookie。我没有任何标头映射,因为我正在使用 lambda 代理与 API Gateway 集成。lambda 函数中的响应代码如下所示:

exports.handler = async (event) => {     
const response = {
    statusCode: 200,
    "multiValueHeaders": {
    "Set-Cookie": ["gtgm=6c7729687d5ff1a05f1a5dfb15ce3b8fa3f2b590; path=/; expires=Fri, 13-Feb-2032 13:27:44 GMT; secure; HttpOnly; SameSite=None"]
  },
    headers: {
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Headers": "*",
      "Access-Control-Allow-Credentials": true,
    },
  };
  return response;
};
Run Code Online (Sandbox Code Playgroud)

我使用 fiddler 检查响应,我可以在响应中看到“Set-Cookie...”,这让我相信上面的代码是正确的?问题是浏览器只是忽略它并且除了 AWS DNT cookie 之外根本不设置任何 cookie。我不确定还需要检查什么,或者我是否遗漏了 cookie 配置中的任何内容。

这就是我的请求:

<Button
      onClick={() => {
        fetch(
          "https:mysupercoolapi.com/cookie-test/",
          {
            // credentials: "include",
            headers: {
              "Content-Type": "application/json",
              // "Access-Control-Allow-Credentials": "true",
            },
          }
        ) …
Run Code Online (Sandbox Code Playgroud)

httpcookie setcookie aws-lambda aws-api-gateway

5
推荐指数
1
解决办法
4504
查看次数