Веб-часть скрывает себя, если у пользователя нет соответствующих прав - PullRequest
2 голосов
/ 26 июня 2009

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

Например, у меня есть веб-часть для отчетов, некоторые пользователи имеют доступ к отчетам, а некоторые нет, я даже не хочу, чтобы некоторые пользователи знали, что отчеты существуют.

У меня есть пользовательский API безопасности, который используется для определения, разрешена или запрещена защита, Я хотел бы сказать:

    protected override void OnInit(EventArgs e) {
        bool allowed = PermissionServices.IsAllowed("Reports");
        if (!allowed) {
             this.Hide(); 
             // Where 'this' is the web part
        }
        base.OnInit(e);
    }

Я не контролирую код страницы, поэтому он должен быть в веб-части.

Ответы [ 2 ]

3 голосов
/ 26 июня 2009

Вы захотите изучить Ориентация на аудиторию .

По сути, таргетинг на аудиторию позволяет настроить страницу в зависимости от группы просматривающего ее человека, чтобы менеджер зашел на «home.aspx» и увидел веб-страницу результатов верхнего уровня, включающую некоторую статистику, но если обычный разработчик входит в систему на той же странице, веб-часть не отображается.

Вы должны быть осторожны с путаницей Аудитории и разрешений . Таргетинг на аудиторию НЕ меняет разрешения вовлеченных пользователей.

EDIT

Спасибо Кирку за то, что он указал, что таргетинг на аудиторию работает только в MOSS, а не в WSS.

0 голосов
/ 26 июня 2009

Вы можете определенно выполнить проверку прав доступа с помощью метода Render() вашего пользовательского WebPart. Если у пользователя нет прав, просто ничего не отрисовывайте.

...