2009-05-29 24 views
0

我已經問了一個類似的問題here但什麼是更具體。Sharepoint功能,在各個網站級別的自定義aspx頁面

我希望能夠部署解決方案並激活一項功能,該功能將各種自定義aspx頁面提供給我的網站中的不同站點級別。

所以我的第一個自定義的aspx頁面會在根:http://example.org/custompage1.aspx

然後另一個自定義aspx頁面將出現在更深的層次:http://example.org/subsite1/custompage2.aspx

我有我的解決方案作用域爲「網「級別。如果我在子站點級別激活該功能,我可以訪問應該出現在更深層次上的自定義aspx頁面,但是,我也可以訪問只應顯示在網站根目錄的其他頁面,例如http://example.org/subsite1/custompage1.aspx

哪個錯,錯,錯!

我試圖將功能範圍設置爲「網站」,但這似乎只提供了根自定義aspx頁面,而不是應該出現在網站更深層的頁面。

回答

1

您在功能xml中所做的任何操作僅適用於激活功能的站點。如果您想根據相關網址在多個網站上執行某些操作,則需要設置功能接收器並使用自定義代碼將文件/功能部署到其他網站。

最簡單的方法可能是在您的解決方案中創建一個單獨的網絡範圍功能,並讓網站範圍的功能接收器在子網站上激活它。

3

「自定義aspx」頁在SharePoint中稱爲「應用程序」頁面,它們部署在_layouts目錄中(通常爲C:\ Program Files \ Common Files \ Microsoft Shared \ web server extensions \ 12 \ TEMPLATE \ LAYOUTS )。 Layouts目錄中的所有頁面都可以從Web應用程序中的每個站點獲得。

如果您事先知道哪個網頁與哪個網站一起使用,那麼您可以在每個自定義頁面中放置代碼,以檢查是否從「無效」網站訪問它,如果是,則拋出自定義404錯誤(請參閱這裏:Hidden Features of ASP.NET)或類似的東西。

+0

查看您的其他問題後,如果您希望某些應用程序頁面只能由網站管理員訪問,請查看RequireSiteAdministrator屬性:http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint。 webcontrols.layoutspagebase.requiresiteadministrator.aspx – Chloraphil 2009-05-29 20:48:27

+0

我認爲我們在這裏混合了術語,我使用了術語custom aspx頁面來表示我在Visual Studio中創建的網頁,它們具有代碼背後的代碼,並且可以通過'普通'網站用戶。在這種情況下,我不是指應用程序頁面。 – Rob 2009-05-30 10:09:20

0

Clorphil釘住了答案。我只補充說,你可以在頁面中使用SPContext.Current.Web來確定你在什麼時候被調用的網站。

相關問題