You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Angular客户端获取C#服务器通过Response.Cookies.Append发送的Cookie

关于Angular客户端获取C#服务器HttpOnly Cookie的问题

首先明确:你无法在Angular客户端直接获取这个refreshToken Cookie。

原因很简单——你的C#代码里给Cookie设置了HttpOnly = true,这个属性的核心作用就是禁止浏览器端的JavaScript(包括Angular的前端代码)读取该Cookie,这是一种安全机制,用来防范XSS攻击窃取敏感的token数据。

那如果需要用到这个refreshToken,该怎么操作?

  • 无需手动获取:浏览器会自动处理这个Cookie。当你用Angular的HttpClient调用后端的接口(比如刷新token的接口)时,只要请求的域名和设置Cookie的域名一致,浏览器就会自动把这个HttpOnly Cookie附加到请求头里发送给服务器,后端可以直接读取并验证。
  • 若需前端拿到token相关信息:可以修改后端逻辑,在设置HttpOnly Cookie的同时,把token(或者非敏感的衍生信息)放在响应体中返回给Angular,前端从响应体里提取后存储(比如存在localStorage,但要注意XSS风险)。
  • 绝对不建议去掉HttpOnly = true:一旦去掉,你的refreshToken就会暴露在前端脚本中,很容易被XSS攻击窃取,严重威胁用户账号安全。

附你提供的C#代码:

private void setTokenCookie(string token)
{
    var cookieOptions = new CookieOptions
    {
        HttpOnly = true,
        Expires = DateTime.UtcNow.AddDays(7)
    };
    Response.Cookies.Append("refreshToken", token, cookieOptions);
}

内容的提问来源于stack exchange,提问作者Janciu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:03:30