2

我们有一个构建系统,我们需要在该系统上为其他用户的构建获取文档。我们没有他们的密码,只有他们的登录名,我们将使用服务帐户。有没有办法使用 FileNet API 获取另一个主体的访问权限,这样我们就不会允许他们获取他们无权访问的东西?

出于性能考虑,我宁愿让 CE 进行检查,而不是获取所有权限并一一检查。加上嵌套组和安全优先级(直接/模板/代理)可能会减慢很多事情的完成速度并使代码变得复杂。getAccessAllowed 之类的东西,但给定了主体或用户?如果没有,最好的方法是什么?

我看到 get_MemberOfGroups 处理嵌套组,但我们仍然必须检查所有权限,注意源优先级和拒绝/允许优先级,这意味着重新实施 CE 安全策略。

4

2 回答 2

1

您可以创建自定义 LoginModule 来验证没有密码的用户,然后您可以使用 CE 作为没有服务帐户的原始用户。

但是您需要将此用户添加到具有正确权限的 FN 对象 ACL 中。

于 2015-09-01T09:32:42.383 回答
1

如果我得到你所说的正确,我认为最好的方法是另一种方式。您不需要查看用户拥有什么访问权限并与文档匹配,您需要查看该用户要求的内容以及他具有正确的访问级别。最好的方法是使用带有用户组的 Active Directory,并为他们设置文档类型 vie 的权限。但是,让我们说一下您在文档方面设置访问权限的方式。当用户调用文档时,获取它的一个实例

Document  doc  =  Factory.Document.fetchInstance(os,ID,null);

并获取权限列表

 AccessPermissionList parmissin = doc.Permissions;

并使用循环获取为该文档设置的权限

 foreach (IAccessPermission owner in parmissin)
{
if (owner.GranteeName == "your loginuserpermission" )
{
 // you can cont your work
}
}

并保留一组本地权限,您可以在其中验证您的用户(db/txt),如果它们匹配,请使用您的服务帐户用户并显示图像和信息。

于 2015-10-21T07:57:09.327 回答