Разрешения для пользователей SharePoint

Я создаю бизнес-приложение, где важны права доступа на чтение и запись. Проект - это приложение Hoster MVC 5/SharePoint, созданное в Visual Studio 2012.

Джонни должен иметь возможность Read и Write контента на SharePoint App A И SharePoint App B

Dave должен иметь возможность Read только Read содержимого SharePoint App A

Я просмотрел много документации, включая этот учебник: http://www.itunity.com/article/sharepoint-permissions-manage-access-sql-data-709

Проблема в том, что если я даю доступ Dave Read на уровне сайта, ему разрешен доступ к SharePoint App A, а также SharePoint App B.

Как эффективно использовать разрешения SharePoint, чтобы остановить это непреднамеренное поведение?

Должен ли я использовать разрешения SharePoint?

Второй пример:

Я создаю приложение для управления проектами, там будет Инженер, который сможет создавать, читать и редактировать проекты, есть также Бухгалтер, который просматривает рекламные материалы проектов.

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

Ответ 1

Я прочитал статью, с которой вы связались, и я не уверен, что это "авторизация", правильным словом является "аутентификация", в sharepoint вы устанавливаете то, что пользователь может, средство авторизации - какой пользователь данных может читать или писать

поэтому простым решением для вас является создание Group в sharepoint, для любого типа авторизации, который у вас есть, например, группа под названием "Инженер", и дает вам необходимые разрешения, ваши инженеры будут быть членами этой группы.

в свой MVC-атрибут, принять группу как параметр и проверить, является ли пользователь членом этой группы, показать пользователю соответствующие данные в соответствии с его группой

   public SharePointPermissionsAuthorizationAttribute( params string group) { _groups = groups; } 




[SharePointEffectivePermissionsFilter("Engineer"]
 public ActionResult Index() { ... } }