RSS Подписка на статьи RSS Подписка на комментарии Панель инструментов

Блог профессионалов стал частью сайта технической поддержки DocsVision http://support.docsvision.com. Новые материалы будут появляться уже на этом сайте.

Поиск

Ярлыки

авто генерация кода (1) Администрирование DocsVision (60) Атрибутивный поиск (3) База данных (24) Базы знаний (1) Безопасность (1) Бизнес-процессы (20) Блог (2) Вы увидите это первыми (1) Групповые политики (1) Диаграммы (2) Задания (2) Интеграция (2) Карточки DocsVision (14) Конструктор Решений (11) Маркетинг и продажи (4) Навигатор (3) Новое (3) Новости (32) Опрос (4) Опросы DocsVision (4) Оптимизация (3) Отчеты (2) Ошибки (1) Поддержка (14) Полезные ссылки (1) Представления (4) Производительность (5) Разбор полетов (18) Разработка для Workflow (7) разработка карточек (2) Разработка на платформе DocsVision (41) Разработка решений (43) Расширение платформы (1) Расширенные отчеты (9) Решения на платформе DocsVision (6) Сервисы DocsVision (3) Сканеры (3) Справочник сотрудников (1) Справочник типов (1) Установка (1) Утилиты (13) Шлюз в SharePoint (8) Штрихкод (2) Cкрипты карточек (7) DocsVision внутри (1) DocsVision Live (1) FileStream (1) FireFox (2) Opera (1) Powershell (5) Safari (1) SharePoint2007 (1) SharePoint2010 (2) Silverlight (1) UltraViews (1) Vista (1)

Работа с правами на объекты через DocsVision API

Частый вопрос, который возникает при разработке на платформе DocsVision, как выполнить различные операции с правами. Описание работы с правами приведено в документации "Руководство разработчика на платформе".

По ссылке вы можете скачать небольшой пример работы с правами. Проект на VB.NET для Visual Studio 2008.

Скачать пример. Читать дальше

3 коммент.:

redzmey комментирует...

добрый день. пробовал переписать пример под .Net библиотеки, так почему-то права назначаются только на объект. т.е. вложенные файлы не получают прав от карточки :(

Михаил Захаров комментирует...

В процедуре назначения прав SetRights обратите внимание на два параметра Inheritance и Propagation. Они отвечают за наследование.
Чтобы наследовалось укажите inheritance = InheritanceFlags.ContainerInherit Or InheritanceFlags.ObjectInherit
propagation = PropagationFlags.InheritOnly

Про эти флаги можно почитать в MSDN

redzmey комментирует...

именно так я и делал.



SetRights(secureCard, CardDataRights.Read, sAccount, InheritanceFlags.ContainerInherit Or InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly)

Private Sub SetRights(ByRef SecureCard As CardData, ByVal Rights As Integer, ByVal AccountName As String, ByVal Inheritance As InheritanceFlags, ByVal Propagation As PropagationFlags)

Try
' Получение описателя прав карточки
Dim newrights As CardDataSecurity = SecureCard.GetAccessControl()
' Создание нового разрешения – совокупного права чтения
Dim rule As New CardDataAccessRule(AccountName, Rights, AccessControlType.Allow, Inheritance, AccessControlType.Allow)
' Добавление нового разрешения к описателю прав

newrights.AddAccessRule(rule)
' Сохранение измененного описателя прав
SecureCard.SetAccessControl(newrights)

Catch ex As Exception
Dim sMessage As String = "Error in rights assignment: " & AccountName
End Try
End Sub

Отправить комментарий