0

由于某种原因,我无法访问我在我的 sensenet 上配置的站点之一。即使使用管理员用户,我也无法访问“资源管理器”上的任何配置。

如何设置网站的权限?

检查数据库上的 logEntrie 我可以验证站点上的最后更改权限:

<Type>SetPermissions</Type>   
<OldAcl>-(5968)|+(7):_____________________________________________+++++++++++++++++++,+(8):___________________________________________________________+++++</OldAcl>  
<NewAcl>-(5968)|+(7):_____________________________________________+++++++++++++++++++,+(8):_______________________________________________+___________+++++</NewAcl>   
<UserName>BuiltIn\Admin</UserName>   

我还在节点表上验证了我认为它来自默认起始页面的路径已被锁定:

/Root/Sites/<site>/<document workspace>/(apps)/This/Browse

(我已将文档工作区指定为站点上的替代起始页)。

4

1 回答 1

2

假设问题是缺少 admin 组的权限,您有两个选项可以从命令行更改 Content Repository 中的权限。

使用SnAdmin

SnAdmin 是一个能够执行包的命令行工具。一个包可以是一个巨大的升级包(为企业客户提供),也可以是一个手动组装的小包。它实际上是一个zip 文件,至少包含一个manifest.xml和可选的其他内容(例如用于更改数据库的sql 脚本或要导入的文件)。

SnAdmin 是在存储库中进行技术修改的推荐方法。

在你的情况下,这真的很容易:

  • 创建一个 zip 文件(例如,名称为“MyPermissionPackage.zip”),其中包含一个包含权限设置步骤的 manifest.xml 文件(参见下面的内容) 。
  • 将此 zip 复制到web\Admin目录
  • 停止 IIS 站点
  • 检查web\Tools\SnAdminRuntime.exe.config文件是否包含与 web.config 相同的连接字符串配置值(这很重要,因此该工具可以与相同的存储库一起使用!)
  • 从命令行执行包(主 SnAdmin.exe 位于web\Admin\bin文件夹中,您可以从那里执行它)

SnAdmin.exe MyPermissionPackage

这是一个示例清单,您可以添加任意数量的步骤(它们有一个完整的库):

<Package type='Product' level='Tool'>
  <Name>Sense/Net ECM</Name>
  <ReleaseDate>2017-01-01</ReleaseDate>
  <Steps>
      <Phase>
          <StartRepository startWorkflowEngine="false" />
          <SetPermissions
            path="/Root/Sites/Default_Site"
            identity="/Root/IMS/BuiltIn/Portal/Administrators"
            allow="Open,RunApplication,SeePermissions,SetPermissions"
            />
    </Phase>
  </Steps>
</Package>

如果一切顺利,在您启动网站后,您会看到更改。

(在不久的将来,当我们发布内置工具包时,这会容易得多,这样您就不必每次都为这些常用操作创建包,只需执行带有一些参数的工具之一)

使用导入工具

在这种情况下,您执行常规导入。您必须在原始源包中找到“.Content”文件 - 或手动创建它们,但复制要导入的文件更容易(例如默认站点的内容文件)。在 .Content 文件的底部,您将看到Permissions部分,您可以在其中定义导入的权限。实际上,您应该从文件中删除整个Fields部分,这样您就不会覆盖任何元数据字段,只需要导入权限。

于 2017-01-23T15:12:45.043 回答