我有一个 .net Web 应用程序,在大多数浏览器和机器上都可以正常工作,但只有一些具有 IE 8 的机器不会创建会话 cookie,因此不会允许用户登录。我已经尝试将浏览器设置重置为默认设置,浏览器设置中的 cookie 也允许域 - 也尝试了兼容模式。同样,这仅在某些机器上发生。我将不胜感激任何帮助。谢谢
4 回答
由于它只发生在某些机器上,也许您应该检查发生问题的机器中的日期/时间。也许 cookie 的过期日期受到这些配置的影响。
您可能会遇到浏览器施加的限制之一(最大 cookie、每个域的最大 cookie、最大 cookie 大小)。您提到您在身份验证方面特别遇到问题。
您是否使用表单身份验证?如果是这样,您是否尝试在 FormsAuthenticationTicket 的 UserData 属性中存储大量数据?这可能会导致 FormsAuthentication cookie 大小超出浏览器施加的限制。作为开发人员,您没有任何线索表明您遇到了这些限制之一,并且您的用户没有收到任何警告或错误,因此他们可以提示您。
否则,您是否通常在您的应用程序中设置大量cookie?还是大饼干?或者其他与您共享相同域的应用程序?确保不要将 cookie 与会话状态混淆,因为会话状态通常只存储 1 个 cookie 以引用存储在服务器端的状态。如果可以从机器上排除故障,请查看开发者工具,看看登录后涉及多少 cookie。
我遇到了同样的问题,这是因为我的 META 标签中没有设置 cookie 隐私政策。您的 HTML 标题中应该有类似的内容:
<meta http-equiv="P3P" content='CP="OTI DSP COR DEVa ADMa OUR IND ONL STA"' />
请参阅此处:创建紧凑的隐私政策
IE8 对 cookie 非常严格。检查服务器时间和本地机器的时间。并检查代理字符串。