刚把项目升级到Net6.0,准备测试一下,结果悲剧了,登录就不可以使用了,经过调试发现原来是存储cookie异常了,异常如下:
System.ArgumentException:“Invalid cookie name: user:41791d99a8 Arg_ParamName_Name”
经过一番查找,在微软网站找到了相关说明,链接:https://learn.microsoft.com/zh-cn/dotnet/core/compatibility/aspnet-core/5.0/security-cookie-name-encoding-removed
文章说的很清楚了,如图:
我的cookie名称包含了冒号user:41791d99a8所以在Net6.0以后将会抛出异常,暂时解决办法如下:
var vTokenUrlEncode = HttpUtility.UrlEncode(cookieName);
做了一次编码,结果通过了;当然你也可以对字符进行加密处理,将特殊字符处理掉即可。