1

我们有一个奇怪的情况。我们的 web.config 中有以下内容:

<authentication mode="Forms">
     <forms name="ASPDNSFGUID" loginUrl="SignIn.aspx" timeout="525600" /></authentication>

这是一个电子商务应用程序,cookie 用于帮助我们确保购物篮的内容在他们登录后被保留,但这是行不通的。我们之前已经使用了几十次,没有问题。

该站点托管在位于 coyote 点负载平衡器后面的两个前端 Web 服务器上。我们注意到,当通过 HTTPS 查看站点时,cookie 就在那里,身份验证类型是表单。但是,当我们浏览非安全时,cookie 丢失并且身份验证类型未设置。我们知道这一点,因为我们创建了一个页面来为我们打印出所有标题。

有人对可能的原因有任何想法吗?我们想知道负载均衡器是否正在剥离 cookie,但我们没有证据表明这一点,只是直觉

4

2 回答 2

0

cookie 是否设置在 https 上,如果是,https 和 http 是否在同一个域上,但仅在协议上有所不同?即https://www.somesite.comhttp://www.somesite.com

<forms>因为,如果他们有不同的子域,除非您在 web.config 的元素中指定 domain="somesite.com",否则您将遇到问题

于 2012-10-26T13:30:55.487 回答
0

我们注意到,当通过 HTTPS 查看站点时,cookie 就在那里,身份验证类型是表单。但是,当我们浏览非安全时,cookie 丢失并且身份验证类型未设置。

当您requireSSL="true"<forms >标签上设置 时会发生这种情况。

您如何尝试domain="yourdomain.com"<forms >标签中声明 ,而不使用 subdomain www.,因为这会影响 cookie。

所以先试试这个

<forms name="ASPDNSFGUID" domain="yourdomain.com" loginUrl="SignIn.aspx" 
          timeout="525600" />

然后尝试查看您是否以编程方式设置了requireSSL。

于 2012-10-26T12:21:41.410 回答