回答
要更改動態基於用戶的角色,see this explanation,從DotnetNuke.com皮膚:
有幾種不同的方式來動態或程序 改變皮膚特定頁面加載。 DotNetNuke將首先在URL中尋找覆蓋值 。如果找到具體的值,則DNN 將在該頁面加載時加載該皮膚和/或容器。其次,DNN 將查看本地cookie以查看是否有皮膚被定義。 最後,如果前兩種方法未指定要加載的外觀,DNN 將加載由頁面或網站定義的默認外觀。在皮膚不存在的事件 的情況下,隨DNN一起提供的默認皮膚將被加載 。
這就是爲什麼安裝後不要刪除原始皮膚包 的原因。
基於 安全角色動態加載皮膚的最佳方法可能是使用DotNetNuke模塊或HttpModule創建一個簡單的cookie。無論哪種方式,您將可以通過 檢索用戶信息,並基於IsInSecurityRole() 屬性生成一個實際加載所需皮膚的cookie。
從本質上說,在DotNetNuke的模塊放置在每一頁上,你將不得不檢查以下內容:
- 哪個門戶是用戶?
- 用戶在哪個安全角色?
- 基於1 & 2,用戶應該看到哪些皮膚?
如果答案#3是「非默認皮膚」,那麼你將需要執行一些這樣的代碼,從DotNetNuke.com採取:
'import DotNetNuke.Entities.Users'
If Not Me.UserInfo Is Nothing AndAlso Me.UserInfo.UserID > Null.NullInteger Then
If Me.UserInfo.IsInRole("My Security Role") Then
' import System.Web.HttpCookie
Response.Cookies.Add(New HttpCookie("SkinSrc", "[G]Skins/DarkKnight/Home-Mega-Menu.ascx"))
Else
' either assign another skin, or do nothing
End If
Else
' either assign another skin, or do nothing
End If
上面的代碼剪斷節目如何通過添加Cookie鍵值對來設置外觀。
我可能會把上面的邏輯放到一個不可見的DNN模塊中,並自動添加到網站上的所有頁面上;否則,您可能可以將邏輯注入Default.aspx(由於編輯DNN核心而不推薦)。
注意:PortalID是可在每個模塊項目中訪問的字段。 Response.Write("My Portal ID: " & PortalID.ToString())
+1但絕對不要修改default.aspx ... – egrunin 2012-02-04 08:32:02
- 1. DNN - 最小化皮膚中的垃圾
- 2. 什麼是皮膚我的iPhone應用程序的最佳方式(類似於皮膚的Notes應用程序)?
- 3. 形式DNN皮膚不工作
- 4. Magento 1.x從前端獲取管理員皮膚URL的最佳方式
- 5. 皮膚Flash播放器的最佳方式
- 6. 用皮膚創建網站 - 根據我的觀點,提供正確圖像的最佳方式是什麼?
- 7. 提供文件的最佳方式?
- 8. 最佳方式* *提供的依賴
- 9. DNN 5.0皮膚創建幫助
- 10. 如何在dnn中創建皮膚5.0
- 11. 皮膚應用的最佳設計模式是什麼?
- 12. 基於URL改變皮膚層
- 13. 的最佳方式基於類型
- 14. DNN皮膚不適用於某些論壇控件
- 15. 在DNN皮膚中使用CSS格式化文本
- 16. 會員提供
- 17. 提供「工具提示遊覽」的最佳方式
- 18. 什麼是皮膚/風格dnn導航菜單的祕訣
- 19. 加載特定皮膚時的DNN錯誤(GeneralContentPage)
- 20. 使用visual studio創建新的DNN皮膚2015
- 21. DNN自定義皮膚不加載正確的CSS
- 22. DNN默認皮膚是移動兼容的
- 23. 被忽略的DNN皮膚背景位置
- 24. asp.net會員登錄控件的模板或css皮膚?
- 25. 提供替代路由方法的最佳方式
- 26. 什麼是用於開發皮膚應用程序的最佳框架?
- 27. asp.net會員提供api。可用性。最佳實踐
- 28. 皮膚在DotNetNuke的
- 29. flex皮膚或款式?
- 30. Flex定製樣式(皮膚)
需要更多的細節。已經可以爲每個門戶設置默認皮膚,或者是否需要爲每個用戶角色的門戶設置皮膚? – 2012-02-03 16:25:25
我想「爲每個用戶角色設置每個門戶的皮膚」。這可能嗎?如果是的話如何? – 2012-02-04 05:44:28