Фрагменты кода. Добавление элемента управления доступом в объект метаданных с помощью объектной модели администрирования
Дата последнего изменения: 7 мая 2010 г.
Применимо к: SharePoint Server 2010
В этой статье
Описание
Необходимые компоненты
Использование этого примера
Описание
В следующем примере кода показано, как программно добавить элемент управления доступом в объект метаданных (модель в этом примере) с помощью объектной модели администрирования BDC на сервере.
![]() |
---|
Объектную модель клиента администрирования BDC можно использовать для создания внешнего типа контента на клиенте. |
Необходимые компоненты
Microsoft SharePoint Server 2010 или Microsoft SharePoint Foundation 2010 на сервере.
Microsoft .NET Framework 3.5 и Microsoft Visual Studio на клиентском компьютере.
По крайней мере один внешний тип контента зарегистрирован в хранилище метаданных BDC.
Использование этого примера
Запустите Visual Studio и создайте проект консольного приложения C#. При создании проекта выберите .NET Framework 3.5.
В меню Вид выберите Страницы свойств, чтобы вывести свойства проекта.
На вкладке Построение в качестве Целевой платформы выберите Любой ЦП.
Закройте окно свойств проекта
В обозревателе решений в разделе Ссылки удалите все ссылки проекта кроме System и System.Core.
Добавьте в проект следующие ссылки:
Microsoft.BusinessData
Microsoft.SharePoint
System.Web
Замените автоматически созданный код в файле Program.cs на код, приведенный в конце этой процедуры.
Замените строковое значение "<siteUrl>" действительным URL-адресом сайта SharePoint.
Вместо "<EntityNamespace>" и "<EntityName>" укажите пространство имен и имя сущности соответственно.
Сохраните проект.
Скомпилируйте и запустите проект.
using System;
using Microsoft.BusinessData.Infrastructure;
using Microsoft.BusinessData.MetadataModel;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint.BusinessData.Administration;
using Microsoft.SharePoint.BusinessData.Infrastructure;
using Microsoft.SharePoint.BusinessData.SharedService;
namespace Microsoft.SDK.SharePoint.Samples.Bdc.AddAccessControlEntry
{
class Program
{
static void Main(string[] args)
{
// Get the Catalog for the SharePoint site.
BdcService service =
SPFarm.Local.Services.GetValue<BdcService>(
String.Empty);
SPSite site = new SPSite("<siteUrl>");
SPServiceContext context = SPServiceContext.GetContext(site);
AdministrationMetadataCatalog catalog =
service.GetAdministrationMetadataCatalog(context);
// Retrieve an existing Entity.
Entity entity = catalog.GetEntity(
"<EntityNamespace>", "<EntityName>");
// Add Execute permissions for a specified user to the Entity.
Console.WriteLine(
"Type the user account to add Execute Rights Access: ");
string userAccount = Console.ReadLine();
IAccessControlList acl = entity.GetAccessControlList();
Console.WriteLine(
"Adding " + userAccount +
"with Execute and Set Permission rights to entity: " + entity.Name);
IAccessControlEntry ace = new IndividualAccessControlEntry(
BdcAccessControlList.TranslateFriendlyStringToEncodedClaim(
userAccount),
BdcRights.Execute | BdcRights.SetPermissions);
acl.Add(ace);
entity.SetAccessControlList(acl);
// Copy entity permissions to its methods so that they can
// be executed by the added user.
entity.CopyAclAcrossChildren();
// Retrieve the LobSystem for this entity and add the user
// to it as well. This will allow the added user to access
// the external source for retrieving data.
LobSystem lobSystem = entity.LobSystem;
IAccessControlList lobSystemAcl =
lobSystem.GetAccessControlList();
lobSystemAcl.Add(ace);
lobSystem.SetAccessControlList(lobSystemAcl);
}
}
}
См. также
Ссылка
GetAdministrationMetadataCatalog(SPServiceContext)
SetAccessControlList(IAccessControlList)