Я пытаюсь проверить, есть ли у данного пользователя доступ к определенной пользовательской таблице. На основе примера, приведенного в документации Kentico, для проверки разрешений для пользовательского 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;
}
Может ли кто-нибудь также упомянуть, что такое допустимые строки имени разрешения, кроме «Чтение»? (например: «Изменить»? «Удалить»? «Вставить»?)
Разрешает ли UserInfoProvider.IsAuthorizedPerClass все членства данного пользователя или только проверяет, добавлен ли пользователь в пользовательскую таблицу явно?
Какие-либо предложения? Мы используем Kentico v8.2.25
Спасибо!
Виктор