2011-04-15 108 views
2

我使用通過ASP.NET會話cookie跟蹤內部大家都知道在我的web應用程序會話對象。因此訪問該cookie對訪問會話對象至關重要。我想http://http://www或子域(域是未知的,我在開發時)在我的asp.net應用程序的工作。會話cookie設置域動態在ASP.NET

+0

你的意思是如何共享子域名的cookies ..或者當他們有或無「www」的使用.... ??? – sajoshi 2011-04-15 05:24:12

回答

0

不能完成。會話cookie僅適用於1個域和1個域。

你可以,但是,寫自己的會話管理系統,也許實現共享會話的方式。我仍然不認爲你可以重新使用cookie,因爲瀏覽器甚至不會將它發送到第一位。


經過一些更多的想法,我已經決定,我不知道。 :)也許,如果兩個子域都映射到同一個ASP.NET應用程序,則可以使共享會話正常工作。所有你需要做的就是設置你的cookies這樣:

<httpCookies domain=".maindomain.com"> 

如果不同subdomians不映射到相同的應用程序,我想你肯定會需要編寫自己的會話管理。


很明顯,在這一點上,你應該把所有我寫的東西都記下來。我只是留下我的答案,讓你得到一些想法,以便人們可以評論它的正確性。

+0

這是可能的。該域在應用程序生命週期中不會改變。這是有一天知道的。您可以通過'Request.Url'獲取當前域並在運行時設置'ASP.NET_SessionId',但這有點棘手,我不知道該怎麼做。 – Xaqron 2011-04-15 04:00:06

+0

現在我們更近了。事實上,我現在的做法與你的建議一樣(在webconfig中使用usnig'httpCookies'),但是尋找一些代碼來放置會話被操縱的aspx頁面。然後,我可以刪除該web.config硬編碼密鑰和應用程序在任何域中工作。我需要的是做這個密鑰在代碼中做的事情(在運行時我知道域)。 – Xaqron 2011-04-15 09:57:45

-1

你爲什麼不離開域字段爲空?這樣你就不會將你的cookies綁定到某個特定的域名,並且能夠很好地發揮你網站的任何域名。

+0

不可以。將它留空意味着它將完全使用請求來自的域。因此,如果您在www.site.com上,cookie將爲www.site.com設置,並且不會提供給* .site.com。 – Jasmine 2017-04-27 23:24:28