Частый вопрос, который возникает при разработке на платформе DocsVision, как выполнить различные операции с правами. Описание работы с правами приведено в документации "Руководство разработчика на платформе".
По ссылке вы можете скачать небольшой пример работы с правами. Проект на VB.NET для Visual Studio 2008.
Скачать пример.
Читать дальше
Поиск
Ярлыки
авто генерация кода
(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)
3 коммент.:
добрый день. пробовал переписать пример под .Net библиотеки, так почему-то права назначаются только на объект. т.е. вложенные файлы не получают прав от карточки :(
В процедуре назначения прав SetRights обратите внимание на два параметра Inheritance и Propagation. Они отвечают за наследование.
Чтобы наследовалось укажите inheritance = InheritanceFlags.ContainerInherit Or InheritanceFlags.ObjectInherit
propagation = PropagationFlags.InheritOnly
Про эти флаги можно почитать в MSDN
именно так я и делал.
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
Отправить комментарий