gpt4 book ai didi

sql-server - 为什么重启 SQL Server 后 cookies 就会过期?

转载 作者:行者123 更新时间:2023-12-02 10:27:14 28 4
gpt4 key购买 nike

我使用经典的 asp 设置了简单的 cookie,例如<%response.cookies("user")="A"%> 。正如我在this Q/A中读到的那样,这样的cookie仅依赖于域名,而不依赖其他任何东西。

我已经测试过,当我在服务器中停止和启动 SQL Server 时,登录的用户会被注销。当我从2012年升级到2014年的SQL Server时,我也有同样的经历。(我不使用ASP session,只设置cookie来识别用户)。

我的确切问题是哪些参数会影响 cookie 的生命周期? IIS?应用程序池?域名? SQL 服务器? IP地址?如果取决于这些因素,我应该如何创建仅依赖于 URL 地址的 cookie?

1年后编辑:当我在写这个问题1年后重新启动SQL Server时,我没有遇到同样的问题。我的意思是这不是一个永久性的问题。这可能取决于 Jeroen 在评论中所说的特殊错误或服务器上的特殊配置。因此,如果您想回答这个问题,您可能只是猜测问题是什么,我无法再测试它以接受答案作为该问题的确切答案。谨此致意。

最佳答案

在 ASP.NET Web 应用程序中,您可以在 web.config 中设置 session 提供程序。文件:

<sessionState 
mode="SQLServer"
sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>"
cookieless="false"
timeout="20"
/>

检查是否未设置为进入临时数据库。

除此之外,SQL-server 不能对您的 cookie 生命周期产生影响,除非启动和停止 sql-server 以某种方式清除了 sql-server 运行的机器上的 cookie 文件,这会很奇怪。

您可能使用 session cookie,每次关闭浏览器时它都会被删除,在这种情况下这只是巧合......

Cookie 是一种客户端技术。
它们不依赖于您服务器上的任何内容。
Cookie 取决于支持 Cookie(并激活它们)的浏览器、http 域(设置的和路径以及设置的子域)。除此之外,还可以有纯 HTTP cookie、 session cookie 和普通 cookie。

仅 HTTP 的 cookie 只能在服务器端读取或设置,客户端脚本无法读取。

由于您的响应是服务器端的,所以这是不可能的。
因此,剩下的两个选项是 session cookie(当您关闭浏览器时)或 cookie 超时,它可以在 cookie 中设置,也可以在带有 forms-authentication 的 web.config 文件中设置:

<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="40320" />
</authentication>

关于sql-server - 为什么重启 SQL Server 后 cookies 就会过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50898162/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com