Dotnetnuke DNN-提供基于成员资格的皮肤的最佳方法?
我将在dotnetnuke中开发基于成员资格的门户 同样,我希望允许portal manager为用户定义皮肤Dotnetnuke DNN-提供基于成员资格的皮肤的最佳方法?,dotnetnuke,dotnetnuke-module,Dotnetnuke,Dotnetnuke Module,我将在dotnetnuke中开发基于成员资格的门户 同样,我希望允许portal manager为用户定义皮肤 告诉我怎么做?要根据用户角色动态更改皮肤,请访问DotnetNuke.com: 'import DotNetNuke.Entities.Users' If Not Me.UserInfo Is Nothing AndAlso Me.UserInfo.UserID > Null.NullInteger Then If Me.UserInfo.IsInRole("My Secur
告诉我怎么做?要根据用户角色动态更改皮肤,请访问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
有几种不同的方法可以动态地或编程地
更改特定页面加载的外观。DotNetNuke将首先查看
用于URL中的重写值。如果找到特定值,则为DNN
将加载该页面上的皮肤和/或容器。第二,DNN
将查看本地cookie以查看是否定义了外观。
最后,如果前两种方法没有指定要加载的蒙皮,则为DNN
将加载页面或站点定义的默认外观。万一
如果皮肤不存在,则将使用DNN附带的默认皮肤
被加载
这就是为什么不删除原始皮肤包很重要的原因
安装后
可能是基于
安全角色是使用
DotNetNuke模块或HttpModule。无论哪种方式,你都可以
检索用户信息,并基于IsInSecurityRole()
属性,生成实际上将加载所需外观的cookie
本质上,在每个页面上放置的DotNetNuke模块中,您必须检查以下内容:
'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(“我的门户ID:&PortalID.ToString())
需要更多详细信息。已经可以为每个门户设置默认外观,还是需要为每个用户角色设置每个门户的外观?我想“为每个用户角色设置每个门户的外观”。是否可以?如果是,怎么做?