2010-10-18 66 views
0

據我的理解有兩種方法可以得到Shibboleth的屬性:

  • 他們要麼可以用$ _ SERVER或
  • (提供商的)HTTP頭響應內

在後面的情況下,我該如何使它們可用於應用程序?即使我抓住他們一次並嘗試使用putenv()將其注入到服務器環境中,它也只會在當前請求的持續時間內出現。我可以在會話中加載它們,但它感覺不對。

回答

1

如果他們進入服務器的環境,那麼每個用戶的值將覆蓋每個請求上的其他人的值。這就是爲什麼有會話來存儲每個用戶的持久數據。當然,您可以讓服務器重新註冊每個請求,只是針對該特定請求的子/線程環境,但除非每次值都更改,爲什麼不把它們放在會話中呢?除非你以某種方式將變量注入到父進程(以root身份運行的進程)中,否則只能影響一個子進程。不能保證下一個請求將由同一個孩子處理。甚至更好的是,即使你注入了父級標記的進程,孩子們也不會繼承那個新的環境,直到他們自然關閉,並且父輩分出一個新孩子。