2013-10-22 54 views
1

我有一個HTTPModule代碼,它在向IIS發出請求後立即爲我提供當前登錄的用戶以及其他一些信息。我們正在根據這些信息執行一些任務。如何檢查對IIS的http請求是否對應於SharePoint站點請求

但是每次發出任何請求時都會觸發它(它應該)。這裏的問題是,我在這個IIS上還託管了其他網站,這些網站需要從上述處理中過濾掉。這種過濾不會發生,因爲上述代碼會被所有網站觸發,我只想限制在與SharePoint相關的網站上。

如何知道http請求是針對SharePoint站點還是任何常規站點?

任何幫助或指針在這方面將是非常可觀的。

回答

1

看起來像你在IIS級別實現了一個模塊。

您應該在應用程序級別上執行此操作,即爲您的SharePoint站點提供服務。

您可以通過使用將修改Sharepoint應用程序的web.config的web應用程序功能實現解決方案來實現此目的。您可以通過使用SPWebConfigModification API做到這一點:

http://msdn.microsoft.com/en-us/library/bb861909(v=office.14).aspx

在IIS的水平,你需要分析該請求並做基於URL或其他參數的一些過濾,這將是從長遠來看,因爲它有問題將需要不斷調整。

+0

我不能在應用程序級別執行此操作。每當在新的WebApp中創建新網站時,新網站將託管在IIS上。管理員可以在SharePoint中創建n個Web應用程序和/或站點。改變之前創建的每個web.config並將進一步創建這將是一個巨大的痛苦。所以我需要在IIS級別實現它。 也如您所說,我只需要篩選條件,我可以根據該條件決定請求是否適用於SharePoint站點。 – Rosane

+0

如果您將其作爲Sharepoint應用程序功能實現,那將會很痛苦。你甚至可以設置一個默認啓用的標誌,它會在新的Web應用程序中自動啓用它。請記住,上面的方法可以處理所有的變化。您不必擔心手動編輯web.config文件 – Luis