背景:我正在使用 javascript 与我的 WCF 服务进行通信。该服务的会话处于 asp 兼容模式。我调用 /publicService.svc/ajax/logon 进行登录,并尝试通过 ajax 检索 /User/Home.aspx。
问题:在本地开发机器(win7)和我的测试服务器(2003 + IIS6 + .net4)上,它没有问题。但是在生产服务器上,登录请求会成功,但身份验证不起作用。
web.config:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" name="party" />
</authentication>
一些发现:如果我访问生产服务器,我发现身份验证 cookie 丢失。
在工作服务器上:
logon:
Request Cookies: ASP.NET_SessionId: xxxxx
Response Cookies: party: xxxxx
Home.aspx:
Request Cookies: ASP.NET_SessionId: xxxxx
party: xxxxx
到目前为止一切顺利,但在有问题的服务器上:
logon:
Request Cookies: ASP.NET_SessionId: xxxxx
Response Cookies: party: xxxxx
Home.aspx:
Request Cookies: ASP.NET_SessionId: xxxxx
此处缺少身份验证 cookie。因此身份验证不起作用。
这可能的原因是什么?所有请求都在同一个域下,所以这里没有跨域问题