2011-09-08 62 views
2

有沒有辦法指定HttpCookie的端口?Asp.net HttpCookie指定端口

我有一個網站,可在sub.example.com,需要部署在sub.example.com:81和sub.example.com:82.(所以同一個域,不同的端口 - 使用的Apache2和單聲道)

認證所使用的cookie指定域和路徑進行:

sub.example.com (domain = "sub.example.com" path = "/") 
sub.example.com:81 (domain = "sub.example.com:81" path = "/") 
sub.example.com:82 (domain = "sub.example.com:82" path = "/") 
// seems that the port in domain is not used... 

所有sub.example.com工作正常,但sub.example.com登錄時,頁面在sub.example.com:81也收到sub.example.com設置的'認證'cookie。

所以我想能夠指定一個httpCookie的端口來限制這個Cookie可以發送到的端口。或者,也許有一種解決方法來模擬此...

回答

1

創建cookie時,可以將Cookie的Port-property設置爲正確的端口。

更多信息,可以發現:http://msdn.microsoft.com/en-us/library/system.net.cookie.port%28VS.80%29.aspx

+2

確實,你可以指定一個System.Net.Cookie(http://msdn.microsoft.com/en-us/library/system.net.cookie.aspx)的端口......但問題涉及到System.Web.HttpCookie(http://msdn.microsoft.com/en-us/library/zw640823(v=VS.80).aspx) –

+0

啊,我誤讀了。如果您未設置域+端口,並且讓Cookie設置域本身,會發生什麼情況。那樣有用嗎? – Pbirkoff

+1

找到了一個簡單/快速的解決方案:該網站的所有實例都有不同的「身份驗證」cookie名稱:cookie的名稱和端口號。例如:cookieName80,cookieName81 ...等等......即使cookies將被髮送到所有實例,服務器也只會查找相關的cookie,並且不會阻止認證過程。 –

1

只是爲了清楚起見 - 沒有,它使用的HttpCookie時是不可能的。