Sitecore 管理工具(如更新安装向导)的角色访问权限



注意:Sitecore 6.6 Update 6(修订版 20130529)

嘿伙计们,我正在尝试允许某些角色用户能够访问更新安装向导的管理工具,以便他们可以将 .update 包部署到环境中。

但是,除了为这些用户提供完全的"是管理员"权限外,我似乎无法弄清楚哪些角色将授予此访问权限。

我尝试了以下角色:

  • Sitecore\Developer
  • Sitecore\Sitecore Local Administrators

这些引入了各种开发和维护角色,并提供大多数工具(包括标准包安装)。 但是,具有此访问权限的用户在访问管理员 URL 时仍会提示登录 (/sitecore/admin/UpdateInstallationWizard.aspx)

有什么想法吗?

您可以查看 Sitecore.Ship 作为将 Sitecore 更新包部署到环境中的替代方法。

实质上,该工具公开了一个终结点,该终结点允许通过 HTTP 远程安装更新包。与更新安装向导相比,此方法具有一些优点,因为它允许在安装包时禁用索引,从而加快包部署速度。

不幸的是,正如文件夹结构所建议的那样(/sitecore/admin),用户必须是完全权限管理员。

UpdateInstallationWizard 基类的 CheckSecurity() 方法专门检查以下内容:

private bool CheckSecurity()
{
  User user = Context.User;
  if ((Account) user != (Account) null && user.IsAdministrator)
    return true;
  SiteContext site = Context.Site;
  string url = (site != null ? site.LoginPage : string.Empty) + "?returnUrl=" + this.Server.UrlEncode(string.Format("{0}.aspx{1}", (object) this.PageUrl, string.IsNullOrEmpty(this.Request.QueryString.ToString()) ? (object) string.Empty : (object) ("?" + this.Request.QueryString.ToString())));
  if (url.Length > 0)
    this.Response.Redirect(url, true);
  return false;
}

您可以在dotPeek反编译器中自己检查这一点。它在类Sitecore.Update.UpdateInstallationBase中定义Sitecore.Update dll