0

在我们基于站点核心的网站中,我们有自定义站点核心模块供站点核心管理员使用。在每个模块中,我们都会进行凭据检查,以查看当前用户是否是 sitecore 用户。

using Sitecore.Security.Authentication;

if (AuthenticationManager.GetActiveUser().Domain.Name != "sitecore")
{
   //not permitted to use the admin module
}

只要管理员登录到 sitecore 门户,此检查就允许管理员使用自定义模块。但问题是,每当他们使用站点核心“预览”功能预览某些项目时,当前活动用户都会更改为“外联网\匿名”。从此时起,我们的自定义模块认为用户不是站点核心管理员,并拒绝访问该模块。

如何克服这个问题?我们需要对我们的管理模块以及预览功能进行此安全检查。

提前致谢!

PS。进一步调查时在已知问题上看到了这一点。http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%206/ReleaseNotes/KnownIssues%20Recommended/Users%20in%20Preview%20mode%20do%20not%20have%20access%20to%20restricted%20pages% 20除非%20他们%20log%20in%20on%20the%20website.aspx

4

1 回答 1

0

预览应用程序在外网\匿名用户的上下文中浏览网站,通过隐藏安全内容等来显示网站对网站访问者的外观/行为。要执行您在模块中进行的检查,您可以Sitecore.Publishing.PreviewManager.GetShellUser()结合Sitecore.Context.PageMode使用您正在寻找的逻辑。

于 2013-05-27T03:56:06.843 回答