gpt4 book ai didi

powershell - Powershell Net-Cookie到期

转载 作者:行者123 更新时间:2023-12-03 00:19:12 24 4
gpt4 key购买 nike

我们正在将PoSH Server用于我们的Web服务。

有谁知道如何更改/设置Cookie在我们的脚本中过期?这是我们目前尝试执行的操作:

$Response = $Context.Response
$Response.Headers.Add("Accept-Encoding","gzip");
$Response.Headers.Add("Server","PoSH Server");
$Response.Headers.Add("X-Powered-By","Microsoft PowerShell");

$Cookie = New-Object Net.Cookie
$Cookie.Name = "SessionID"
$Cookie.Value = New-TimeStamp
$Cookie.Expires = now+10
$Response.AppendCookie($Cookie)

我们也尝试过像: $Cookie.Expires = DateTime.Now.AddMinutes(10)a.s.o。

Cookie的读取方式如下:
$Cookies = $Request.Cookies["PoSHSessionID"];

Cookie过期时间(生存期)不变。始终如此: session 的生命周期结束。

最佳答案

我能够得到它来设置基于基于Expires属性设置的日期的值,但是它将其作为“最大年龄”而不是“http” header 中的“过期”发送(从快速开始)至少较低版本的IE不支持Internet搜索)。

我不习惯使用System.Net.HttpListenerResponse类型(更习惯于ASP.NET中使用的System.Web命名空间),所以我很可能会遗漏一些非常明显的东西,但这是使它正常工作的唯一方法我想要的是手动添加Set-Cookie header 。有关如何执行此操作的示例如下:

$Context.Response.Headers.Add("Set-Cookie", "myCookieName=myCookieValue; expires=Tue, 12-Jan-2016 01:14:40 GMT")

但是请注意,cookie值中可能包含特殊字符,这会使Set-Cookie字符串无效。解决该问题的一种可能方法是,像您一样,使用System.Net.Cookie类创建cookie值字符串,然后将Set-Cookie header 与cookie的ToString()一起添加,并手动添加过期值(确保它们之间用分号分隔)。

这确实感觉像是一个丑陋的解决方法,完全没有必要。我可能丢失了一些东西,但是在我的虚拟测试机(Win7,PowerShell 2.0,.NET 4.0,IE10,FF26)上,我无法发送Expires而不是Max-Age。

您可以在 the Wikipedia page about HTTP cookies under the header 'Expires and Max-Age'中找到到期日期格式的说明。

关于powershell - Powershell Net-Cookie到期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21066543/

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