我正在尝试检查给定的用户是否有权访问特定的“自定义表”。
根据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/

10-10 16:17