gpt4 book ai didi

c# - Kentico UserInfoProvider.IsAuthorizedPerClass 未按预期工作

转载 作者:行者123 更新时间:2023-11-30 20:39:39 25 4
gpt4 key购买 nike

我正在尝试检查给定用户是否有权访问特定的自定义表格。基于 kentico 文档中列出的示例 check permissions for a custom table ,我已经设置了一个类似的调用,使用我的自定义表类名称和用户信息,但对“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;
}

除了“Read”之外,还有谁能提到有效的权限名称字符串是什么? (例如:“修改”?“删除”?“插入”?)

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com