我们在 EPiServer 6r2 中建立了一个新的“访问者组”,<body>
如果用户在该组中,我们希望在站点的标签中添加一个 css 类,以便不同的组获得不同的站点设计。我试图找出当前访问者是否在母版页文件的代码隐藏中的匹配组中,以便添加这个额外的类,并且无法让下面的代码返回除 false 之外的任何内容。
我不确定提到的角色名称是否是您在添加访客组时在 CMS UI 中输入的名称。
Paul Smith在博客上对此提出了一个解决方案,但我还没有让它返回任何东西false
,而且从博客文章的唯一评论来看,我并不孤单。此链接中的代码示例#1(这是我正在使用的):
using EPiServer.Personalization.VisitorGroups;
...
bool match = EPiServer.Security.PrincipalInfo.CurrentPrincipal
.IsInRole("My Visitor Group", SecurityEntityType.VisitorGroup);
我找到了成员资格和角色提供者的开发人员指南,其中指出replacePrincipal
必须设置true
为正确的主体才能到位。我检查了一下,这已经是我的配置的情况。
文档
- EPiServer 7 文档
奇怪的是,我从http://sdk.episerver.com/搜索了 6r2 文档,但根本找不到 IPrincipalExtensions 的文档,即使我在 6.2 的对象浏览器中看到了该类。在我的 sln 中。详细信息:大会EPiServer.ApplicationModules
- C:\Windows\assembly\GAC_MSIL\EPiServer.ApplicationModules\6.2.267.1__8fe83dea738b45b7\EPiServer.ApplicationModules.dll
-public static bool IsInRole(this System.Security.Principal.IPrincipal principal, string role, EPiServer.Security.SecurityEntityType type)
成员EPiServer.Personalization.VisitorGroups.IPrinicipalExtensions
如果您发现错误或我遗漏了任何内容,请发表评论,因为 EPiServer 的编码有点像战争迷雾,我有点厌倦了战斗。