我正在尝试检查给定的用户是否有权访问特定的“自定义表”。
根据kentico文档中check permissions for a custom table上列出的示例,我使用自定义表类名称和userinfo进行了类似的调用,但对“ UserInfoProvider.IsAuthorizedPerClass”的调用始终返回false:
private bool CheckCustomTableReadPermission(UserInfo user = null)
{
// Gets the user object
//UserInfo user = UserInfoProvider.GetUserInfo("CMSEditor");
//UserInfo user = UserInfoProvider.GetUserInfo("someothervalidusername");
//UserInfo user = CurrentUser;
//normally outside of this function
UserInfo CurrentUser = MembershipContext.AuthenticatedUser;
string CustomTableClassName = "Namespc.TblName";
if (user == null)
{
user = CurrentUser;
}
if (user != null)
{
// Checks whether the user has the Read permission for the CMS.MenuItem page type
if (UserInfoProvider.IsAuthorizedPerClass(CustomTableClassName, "Read", SiteContext.CurrentSiteName, user))
{
// Perform an action according to the result
return true;
}
}
return false;
}
除了“读取”以外,谁能说出有效的权限名称字符串是什么? (例如:“修改”?“删除”?“插入”?)
是UserInfoProvider.IsAuthorizedPerClass解析给定用户的所有成员身份,还是仅检查是否将用户明确添加到自定义表中?
有什么建议么?我们正在使用Kentico v8.2.25
谢谢!
胜利者
最佳答案
这样做的方式与在其中完成的方式一样
CMS \ CMSModules \ CustomTables \ Tools \ CustomTable_Data_EditItem.aspx.cs
这是:
DataClassInfo dci = DataClassInfoProvider.GetDataClassInfo(customTableId);
dci.CheckPermissions(PermissionsEnum.Read, SiteContext.CurrentSiteName, MembershipContext.AuthenticatedUser)
可能的权限位于
CMS.DataEngine.PermissionsEnum
中。 (读取,修改,创建,删除,销毁)关于c# - Kentico UserInfoProvider.IsAuthorizedPerClass不能按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34157253/