c# - ASP.Net Core 为我的应用程序处理了太多 cookie
问题描述
我有一个测试应用程序,用于测试与我的 WSO2 Identity Server IDP 的集成。当它自己运行时,它工作得很好。它制作了一个.AspNetCore.Antiforgery
cookie和一个.AspNetCore.Cookies
cookie。防伪cookie为190字节,主cookie为3.7K字节。
但是,如果我先登录到另一个应用程序,然后加载我的测试工具页面,它会获得 4 个额外的 cookie:
.AspNetCore.CookiesC1
- 4K 字节.AspNetCore.CookiesC2
- 4K 字节.AspNetCore.CookiesC3
- 4K 字节.AspNetCore.CookiesC4
- 1K 字节
这些额外的 cookie 使我超出了某种限制,因为页面加载时出现以下错误(而不是我的应用程序):
错误请求 - 请求太长
HTTP 错误 400。请求标头的大小太长。
我不知道如何查看这些附加 cookie 中的内容,因为它们是 base 64(我认为它们是加密的)。
我的问题是,为什么 ASP.Net 核心会因为我登录到另一个站点(使用相同的 WSO2 IDP,但使用不同的 OIDC 应用程序)而添加这么多额外的 cookie?我可以防止它发生吗?
补充说明:
- 当我一遍又一遍地重现此内容以获取详细信息时,我注意到有时它可以添加额外的 cookie,但不会给出错误消息。发生这种情况时,唯一的区别似乎是原始 cookie
.AspNetCore.Cookies
更改为读取“4 个块”而不是其 long 值。但这仅适用于第二个应用程序。另一个似乎可以用额外的尺寸很好地加载它(我试过颠倒顺序......)我很困惑......
解决方案
当您的用户身份声明过多时,通常会发生这种情况。您可能会尝试修改您的应用程序,以便它仅在声明中保留有关您的用户的最常用信息,并为其他人进行按需查找。
推荐阅读
- c++ - 为什么这段代码不直接使用 C++ 幂函数?有人可以帮助我使用此代码中的电源功能吗?
- python - 如何将 csv 转换并格式化为包含标题名称的列表列表
- kotlin - 为什么 Kotlin 的 Number-class 缺少运算符?
- r - 如何将原始向量从 sqlQuery 转换为数据框中的单个字符串?
- mysql - 一大列还是许多小行?
- c# - 如何使用 Microsoft Graph API 从包含嵌套组的组中仅获取用户?
- julia - (Julia 1.x) 获取#undef 变量的类型
- django - Django prefetch_related 似乎无法按预期工作
- vue.js - 如何从 Vuex 操作中的 axios 函数返回错误消息以调度 catch(error)?
- laravel - subCategories 函数已定义,但我得到的只是调用未定义的方法 Illuminate\Database\Eloquent\Builder::subCategories()"