1

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

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

但是,没有给这些用户完全的“是管理员”权限,我似乎无法弄清楚哪些角色会给予这种访问权限。

我尝试了以下角色:

  • 网站核心\开发者
  • sitecore\Sitecore 本地管理员

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

有什么想法吗?

4

2 回答 2

4

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

本质上,该工具公开了一个端点,允许通过 HTTP 远程安装更新包。这种方法比更新安装向导有一些优势,因为它允许在安装包时禁用索引,从而加快包部署。

于 2013-10-24T11:29:01.923 回答
2

不幸的是,正如文件夹结构所暗示的那样(/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

于 2013-10-23T18:33:16.307 回答