我们有一个构建系统,我们需要为其他用户的构建获取文档。我们没有他们的密码,但只有他们的登录名,我们将使用一个服务帐户。是否有一种方法可以通过FileNet API获得另一个主体的访问权限,这样我们就不会允许他们获取他们没有访问权限的东西?
出于性能考虑,我宁愿让CE进行检查,而不是获得所有权限并逐一检查。此外,嵌套组和安全优先级(direct/template/proxy)可能会大大减缓工作速度,并使代码变得复杂。比如getAccessAllowed,但给定主体或用户?如果没有,最好的方法是什么?
我看到get_MemberOfGroups处理嵌套组,但我们仍然需要检查所有权限,照顾源优先级和拒绝/允许优先级,这意味着重新实现CE安全策略。
您可以创建自定义LoginModule来验证用户而不需要密码,然后您可以作为原始用户使用CE而不需要服务帐户。
但是您需要在FN对象的ACL中添加具有正确权限的用户
如果我没听错的话,我觉得最好的办法是反过来。你不需要看用户拥有的访问权限和文档的匹配,你需要看用户问什么,他有权限访问级别。最好的方法是与用户组一起使用活动目录,并为它们设置文档类型vie的权限。但是我们说同样的,你如何设置访问权限在文件的一边。当用户调用文档时,获取它的实例
Document doc = Factory.Document.fetchInstance(os,ID,null);
获取权限列表
AccessPermissionList parmissin = doc.Permissions;
并使用loop获取该文档设置的权限
foreach (IAccessPermission owner in parmissin)
{
if (owner.GranteeName == "your loginuserpermission" )
{
// you can cont your work
}
}
并保持本地您验证用户(db/txt)的权限集,如果它们匹配,则使用您的服务帐户user并显示图像和信息。