我正在研究 sensenet API。我遇到了关于 sensenetAPI 安全性的 setPermission 问题。
根据关注,当我创建一个文档时,我想将“查看”、“打开”、“保存”和“运行应用程序”权限作为新创建文档的默认设置给用户(用户取自函数参数)。
为了实现这一点,我使用下面的代码
public static void SetCollabUserSecurity(string myUserEmailId, Node myNodetToSetSecurity)
{
var domainName = "Builtin";
var strUsername = GetNameFromEmail(myUserEmailId);
User user;
using (new SystemAccount())
{
user = User.Load(domainName, strUsername);
if (user != null && user.Enabled)
{
var myUser = user;
myNodetToSetSecurity.Security.SetPermission(myUser, true, PermissionType.See,
PermissionValue.Allow);
myNodetToSetSecurity.Security.SetPermission(myUser, true, PermissionType.Open,
PermissionValue.Allow);
myNodetToSetSecurity.Security.SetPermission(myUser, true, PermissionType.Save,
PermissionValue.Allow);
myNodetToSetSecurity.Security.SetPermission(myUser, true, PermissionType.RunApplication,
PermissionValue.Allow);
}
}
}
当我使用这个功能时,我创建文档的过程变得很耗时。执行大约需要 40 秒时间。
因此,如果我想与多个用户共享同一个新创建的文档,假设有 3 个用户并且我想将上述权限授予所有用户,那么我的单个函数调用需要 120 秒(2 分钟)是时候简单地分配权限了。
是否有任何可用的 Odata REST API 调用或任何可用的 sensenet 库调用,我可以通过它们分配...
1) 单个文档的多个用户的多个权限或 2) 单个文档的单个用户的多个权限
任何人都可以帮助解决这个问题吗?
谢谢!