Получить пользователя из группы sharepoint и перенаправить
Мое требование - когда кто-то входит на сайт, и если он принадлежит к группе "владелец", он должен немедленно перенаправить на конкретный сайт, и если он принадлежит к группе участников, то необходимо перейти / перенаправить на тот же указанный сайт другой странице.
2 ответа
Очень простым решением может быть использование SPSecurityTrimmedControl
, Что он делает, так это то, что он добавляет все, что находится внутри элемента управления, только если указанный доступ выполняется пользователем.
Итак, вы можете установить полный контроль прав доступа для элемента управления и включить простой JavaScript-редирект. И только после этого, вне элемента управления, добавьте скрипт перенаправления в другой элемент управления. Что-то вроде ниже:
<SharePoint:SPSecurityTrimmedControl ID="SPSecurityTrimmedControl1" runat="server" AuthenticationRestrictions="AuthenticatedUsersOnly" Permissions="ManageWeb" PermissionContext="CurrentSite">
<script type='text/javascript'>javascript to redirect owners</script>
</SharePoint:SPSecurityTrimmedControl>
<script type='text/javascript'>javascript to redirect readers</script>
Таким образом, если пользователь является владельцем, sscript перенаправления владельца будет присутствовать на странице, а если нет, то он будет перенаправлять на страницу читателя.
Поскольку он находится в SP2010, я предполагаю, что мы используем код C# на стороне сервера вместо CSOM, который еще не разработан в SP2010.
создать статический вспомогательный метод, например:
public static bool IsInGroup (этот пользователь SPUser, группа SPGroup) { return user.Groups.Cast() .Any(g => g.ID == group.ID); } }
проверьте в своем коде, принадлежит ли пользователь определенной группе
Пользователь SPUser; Группа SPGroup; bool assignToGroup = user.InGroup(group);
используйте SPUtility.Redirect, чтобы перенаправить пользователя на любую нужную вам страницу.
Надеюсь, это поможет как-то.