【发布时间】: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