Вопрос об авторизации SharePoint 2010 - PullRequest
0 голосов
/ 01 сентября 2011

Допустим, у меня есть 2 страницы на сайте sharepoint. Давайте назовем их страницами A и B. Мы используем механизм аутентификации на основе Windows. Допустим, у меня есть 2 уже аутентифицированных пользователя X & Y. Страница A должна быть видимой для пользователей, у которых определенный атрибут установлен в 1 в активном каталоге. Страница B должна быть видна только тем пользователям, у которых этот атрибут не установлен в 1. Давайте назовем этот атрибут SpecialUser. Если SpecialUser равен 1 для данного пользователя, пользователь должен иметь возможность видеть только страницу A, а не быть страницей B. Если SpecialUser имеет любое другое значение, пользователь должен иметь возможность видеть только страницу B и не быть страницей A.

В этом случае пользователь X имеет атрибут SpecialUser, установленный в 1, а пользователь Y - нет. Таким образом, пользователь X должен видеть только страницу A, а пользователь Y должен видеть только страницу B.

В активном каталоге нет группы, в которую входят только пользователи, у которых для атрибута SpecialUser установлено значение 1. Мы не хотим создавать группу sharepoint и добавлять этих пользователей вручную.

Учитывая эти ограничения, как мы можем получить это разрешение? Я думаю, что может возникнуть необходимость в пользовательском кодировании. Если требуется пользовательское кодирование, как мне это сделать. Если нет, то каково решение?

Ответы [ 2 ]

1 голос
/ 01 сентября 2011

Если ваше веб-приложение можно настроить для использования режима на основе утверждений вместо классического режима, вы сможете достичь этого без пользовательского кодирования, поскольку атрибут Active Directory можно использовать в качестве утверждения при настройке разрешений на странице.

В противном случае потребуется пользовательское кодирование.Вы можете создать пользовательскую веб-часть, которую вы размещаете на странице, которая может либо перенаправить пользователя, либо вызвать SPUtility.HandleAccessDenied (new UnauthorizedAccessException ()) для недопустимых пользователей.Чтобы обеспечить безопасность страниц (сделать их невидимыми), вам потребуется аналогичная логика в любых меню или веб-частях, отображающих страницы.

Если атрибут Active Directory является частью профиля пользователя SharePoint, вы можете использовать UserProfile класс.В противном случае вы можете использовать System.DirectoryServices.AccountManagement для получения значения атрибута.

0 голосов
/ 01 сентября 2011

Я думаю, что проще всего придерживаться стороны активного каталога.Аутентификация на Sharepoint может быть немного непостоянной.Вдобавок ко всему, я бы, вероятно, предложил создать группу активных каталогов, которая должна содержать список этих пользователей.Вместо того, чтобы обновлять его вручную, у вас может быть служба, запускаемая так часто (раз в день, раз в час, зависит от того, как долго вы хотите использовать устаревшую аутентификацию), и проверьте списки пользователей в активной директории на наличие этого флага.Затем служба обновит группу, которую вы используете для аутентификации.

Возможно, есть способ сделать это более изящно в стенах разработки Sharepoint, но я не слышал ничего подобного.

...