【发布时间】:2013-05-22 10:47:12
【问题描述】:
在我们基于 sitecore 的网站中,我们有自定义的 sitecore 模块供 sitecore 管理员使用。在每个模块中,我们都会进行凭据检查,以查看当前用户是否是 sitecore 用户。
using Sitecore.Security.Authentication;
if (AuthenticationManager.GetActiveUser().Domain.Name != "sitecore")
{
//not permitted to use the admin module
}
此检查允许管理员只要登录到 sitecore 门户就可以使用自定义模块。但问题是,每当他们使用 sitecore 的“预览”功能预览某些项目时,当前活动的用户都会更改为“extranet\Anonymous”。从此时起,我们的自定义模块认为用户不是站点核心管理员,并拒绝访问该模块。
如何克服这个问题?我们需要对我们的管理模块以及预览功能进行这种安全检查。
提前致谢!
【问题讨论】:
-
您使用哪个版本的 Sitecore?您在页面生命周期的哪个时间点检查用户的域?我已经在我的项目中检查了它,在预览期间我得到了 admin 用户的
"sitecore"域。Sitecore.Context.User.GetDomainName()是否也为您返回外联网?确定预览代码中没有使用SecurityDisabler? -
感谢您试用 Maras。我们使用的是 Sitecore 6.6.0(修订版 120918)。我在 Page_Load 中检查域。
Sitecore.Context.User.GetDomainName()也给出相同的结果。不,我们不在公共网站上使用 SecurityDisabler。 (我们偶尔会在自定义代理中使用它)