回答
要更改动态基于用户的角色,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