【问题标题】:Access httponly cookie from server side (ASP.NET 4.5)从服务器端访问 httponly cookie (ASP.NET 4.5)
【发布时间】:2016-02-24 02:32:34
【问题描述】:

我正在尝试通过 https 从后面的代码中检索 httponly cookie,然后将其设置为会话变量以从 Web 表单页面中检索。代码在同一个域中。

HttpCookie cookie = Request.Cookies["CookieName"];
            if (cookie != null)
            {
                string token_value = cookie.Value.ToString();

                Session.Add("TestCookie", token_value);
            }

在我的网络表单中,我尝试检索会话变量,但值为 null。

<script type="text/javascript">
        var cookie_value = '<%= Session["TestCookie"] %>';
        alert(cookie_value);
    </script>

【问题讨论】:

  • 在你的第一段代码中,设置了cookie吗?
  • 不,继续获取空值。 cookie 存在,但后面的代码看不到。
  • 如果我手动创建一个 cookie,我可以检索该值。当用户在登录到主应用程序后被重定向时,cookie 将被传递。重定向将用户带到appdomain/myapplication。我需要检索安全 cookie,然后传回令牌安全服务。
  • 我对这种方法有疑问。如果我使用从 cookie 中检索到的令牌值设置会话变量,那么该值将在客户端上可见,这首先破坏了拥有安全 cookie 的目标。如果使用隐藏字段,同样的规则也适用。还有其他解决方案吗?
  • 我将采用的新方法是从后面的代码中检索安全 cookie 值,然后从后面的代码中调用 web api。这样我就不会将 cookie 值暴露给客户端。

标签: c# asp.net cookies webforms httponly


【解决方案1】:

代替

Session.Add("TestCookie", cookie);

我想你的意思是写

Session.Add("TestCookie", token_value);

【讨论】:

  • 我的错。我已将正确的行注释掉以进行测试,并在此处发布之前忘记取消注释。
猜你喜欢
  • 2022-11-14
  • 2019-11-26
  • 1970-01-01
  • 2021-04-07
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多