在IE8之前一切正常。使用IE8,当用户打开PDF然后返回应用程序时,他已经失去了身份验证。我在表单auth cookie上添加了一个到期日,问题似乎得到了解决。但是,我后来发现父应用程序中出现了同样的问题。使用持久性cookie,当用户继续使用我的应用程序(domain.com/myapp)时,一切都很好,但当他返回到父应用程序(domain.com)窗口时,他已经失去了身份验证。父应用程序使用专有的身份验证和授权体系结构,该体系结构依赖于会话状态。
所以我对问题的理解是FileSystemResult不携带任何会话信息,因此会话丢失。我了解到,通过向Cookie添加过期,Cookie会保留,并且即使在打开文档时,也会允许授权在我的应用中保留。
我不太明白为什么在我的cookie中添加一个到期时间将问题转移到父应用程序。所以,我错了,这在父母一直都在发生。有趣的是,当我联系Fiddler观察正在发生的事情时,问题就消失了。
您有解决此问题的建议吗?除了将文件写入服务器并返回带有直接打开文件的链接的页面之外,我无法想到任何其他内容。
基于this question,我认为自己已经被软管了。
答案 0 :(得分:1)
IE8处理持久性cookie的方式有一些变化,这可能是你的问题的路径。这里有一个有趣的post描述了一种可能的解决方案。
解决方案花了我们很长时间才发现网上信不信由你, 当我们发现它时,我们想要自己找不到它 更早。这一切都源于表单的域属性 您的web.config文件中的身份验证设置 应用。我们通常会在应用中将该属性留空 让它更容易发展。此外,上面没有其他浏览器 关心那个设置,运作得很好。但是,那 在IE8中更改,现在该属性是必需的。