我使用经典的asp设置了简单的Cookie,例如<%response.cookies("user")="A"%>
。正如我在this Q/A中所读到的,这样的cookie只依赖于域名而不是其他内容。
我在服务器中停止并启动SQL服务器时已经测试过,登录的用户已经注销。我从2012年到2014年升级SQL服务器时也有同样的经验。(我不使用ASP session
并且只设置cookie来识别用户。)
我的确切问题是哪些参数对Cookie生命周期有影响? IIS?应用程序池?域名? SQL SERVER? IP地址?如果它取决于这些因素,我应该如何创建一个仅依赖于URL地址的cookie?
答案 0 :(得分:1)
在asp.net网络应用程序中,您可以在web.config文件中设置会话提供程序:
<sessionState
mode="SQLServer"
sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>"
cookieless="false"
timeout="20"
/>
检查是否未将其设置为使用tempdb。
除此之外,SQL服务器不能会影响您的cookie寿命,除非启动和停止sql-server会以某种方式清除运行sql-server的计算机上的cookie文件,会很奇怪。
您可能使用session-cookie,每次关闭浏览器时都会删除它们,在这种情况下,这只是一个巧合...
Cookie是一种客户端技术。
它们不依赖您服务器上的任何内容。
Cookies取决于浏览器支持的cookie(并已激活它们),http域(设置了路径和路径,以及设置了子域)。除此之外,可能还有纯HTTP cookie,会话cookie和普通cookie。
仅HTTP的cookie只能在服务器端读取或设置,客户端脚本无法读取。
由于您的回复是服务器端的,所以不可能。
因此,剩下的两个选项是会话cookie(当您关闭浏览器时)或cookie超时,它可以在cookie中或在具有表单身份验证的web.config文件中设置:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="40320" />
</authentication>
答案 1 :(得分:0)
您可以查看以下内容:https://stackoverflow.com/a/3855874/11442461。 我不确定,但是Machine Key应该会影响Cookie,并且可能取决于SQL Server的安装。