Posts Tagged ‘C#’

Есть вебчасть, содержащая внутри себя меню PeopleEditor. Столкнулся с тем что для анонимных пользователей она недоступна:

control is not available

Спасибо Karel Hájek, который раскопал рефлектором что дело в дополнительной проверке, которая происходит на этапе рендеринга. Для отображения не хватает пермишна “BrowseUserInfo”, который по умолчанию выключен для анонимных юзеров, а веб-интерфейс не позволяет его выдать.

does_user_have_permissions

Karel предлагает подредактировать базу данных контента и разрешить анонимные запросы в Active Directory.

Намного проще это сделать через Powershell-скрипт, тем более что редактирование базы контента напрямую это очень bad-practice 🙂

Подключаем консоль, получим текущие разрешения и добавим к ним SPBasePermissions.BrowseUserInfo:

$sharePointSnapin = Get-PSSnapin | Where-Object { $_.Name -eq "Microsoft.SharePoint.PowerShell"}
if($sharePointSnapin -eq $null)
{
 Add-PSSnapin Microsoft.SharePoint.PowerShell 
}


$web = Get-SPWeb http://portal/web/

$web.AnonymousPermMask64;
# output: ViewListItems, ViewVersions, ViewFormPages, Open, ViewPages, UseClientIntegration


$web.AnonymousPermMask64 = "$rights, BrowseUserInfo";
$web.Update();

Теперь PeoplePicker рендерится для всех пользователей(для того чтобы он ещё и работал надо включить запросы в AD):

people_picker_rendered