缺少ASP.NET_SessionId

在我的网站上切换页面时,我丢失了ASP.NET_SessionId.问题发生在Chrome / Firefox / Safari中.它不会发生在IE中.这很奇怪……这是我的情景.

可以通过在浏览器中输入www.example.org或example.org来访问我的网站(这是您将看到的重要信息).

我输入example.org.从我的主页,我登录到我的网站(注意:我没有使用ASP.NET表单身份验证).我被发送到我的用户页面(例如,userpage.aspx).在此页面中,我点击< a>这会将我发送到我网站上的其他页面. < a>链接是完全限定的(例如,http://www.example.org/page2.aspx).当我被发送到新页面时,我的会话丢失了!

所以,我跑fiddler尝试发现问题.我发现的很有趣.请求标头Referer在页面之间丢失.

以下是步骤:

>转到example.org.
>登录example.org.
>我被重定向到userpage.aspx. Referer是http://example.org.ASP.NET_SessionId已设置.
>我点击< a> (例如,http://www.example.org/page2.aspx).呈现页面后,ASP.NET_SessionId将丢失.

丢失的ASP.NET_SessionId始终丢失Chrome / Firefox / Safari.这不会发生在IE中.

如果用www.example.org替换example.org重复上述步骤,则ASP.NET_SessionId不会丢失.它每次都能正常工作.

有关这种行为的任何想法?

解决方法

将其添加到< system.web>下的web.config中.元件
<httpCookies domain=".mysite.com" />

查看行为是否有任何变化.听起来好像子域失败了,尽管我认为cookie基于根域开始.这应该强制它.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....