【发布时间】:2012-11-28 17:26:30
【问题描述】:
发现表单身份验证 Cookie 未在服务请求之间共享的问题。
Cookie '.ASPXAUTH' 已成功生成并从登录服务发送到浏览器,但未将 Cookie 发送到对同一服务的后续请求。
从云应用调用服务时发现使用 HTTP 1.1 的请求和响应是 HTTP 1.0
对 Fiddler 和其他工具的用户的更多观察:
适用于以下情况:
- 从本地开发系统运行服务和客户端网站
- 在同一 IIS 上托管服务和客户端(本地和远程)
- 基于 URL 访问,cookie 正确传输
不适用于以下情况:
- 在不同的 IIS 服务器中托管服务和客户端。
- IIS(或 Azure)中的托管服务和来自本地开发系统的客户端
更多细节: 两个请求都针对相同的服务,即相同的域、相同的协议、相同的端口号等。
更新于 20-12-2012 15:14:
正如我之前所说,登录功能在 Ajax 调用上正常工作,Fiddler 在响应时显示 Set-Cookie,但浏览器未读取 Cookie。
尝试在 $.Ajax() 的“完成:”事件上读取 document.cookies,但我无法读取 cookie。表示浏览器没有获取或持有 cookie(Fiddler 显示在相同的响应上)
问候, 罗摩克里希那
【问题讨论】:
-
您是否检查过您的 cookie 用于相同的协议、域、端口和路径
-
您使用了多少个实例?
-
服务器(运行IIS)时间是否设置为当前时间?使用 Azure 或 IIS 时 cookie 的超时日期和时间是多少?
-
另外,您是否尝试过在 $.ajax 代码中添加 xhrFields:{withCredentials: true} ?见api.jquery.com/jQuery.ajax
标签: cookies azure forms-authentication cloud