Método IAccessControlList.Add
Acrescenta uma entrada controle de acesso à lista de controle de acesso (ACL). Este método não pode ser substituído.
Espaço para nome Microsoft.Office.Server.ApplicationRegistry.Infrastructure
Conjunto de Módulos (Assembly) Microsoft.SharePoint.Portal (em microsoft.sharepoint.portal.dll)
A sintaxe
Sub Add ( _
ace As IAccessControlEntry _
)
Dim instance As IAccessControlList
Dim ace As IAccessControlEntry
instance.Add(ace)
void Add (
IAccessControlEntry ace
)
Parâmetros
- ace
Um AccessControlEntry Para anexar ao final da ACL.
Exemplo
Este exemplo adiciona uma entrada controle de acesso para a atual usuário e para um usuário especificado.
Prerequisites
Certifique-se que um provedor de serviços compartilhados já é criado.
Criar uma instância LOBSystem LOBSystem e definir parâmetros conexão conforme mostrado na Como a: Criar um LobSystem com o modelo de objeto de administração.
Criar a entidade ProductModel como mostrado no Como a: criar uma entidade com o modelo de objeto de administração
Criar um método localizador conforme mostrado no Como a: Criar um método e filtros usando o modelo de objeto de administração
Substituir a constante valor EnterYourSSPNameHere na codificar com o nome do seu Shared Resource Provider.
Substituir a constante valor UserName no formato nome_do_domínio ome_de_usuário.
Project References
Adicione o seguinte referências do projeto no seu projeto código do aplicativo console antes execução neste exemplo:
Microsoft.SharePoint
Microsoft.SharePoint.Portal
Microsoft.Office.Server
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Office.Server.ApplicationRegistry.Administration;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;
using WSSAdmin = Microsoft.SharePoint.Administration;
using OSSAdmin = Microsoft.Office.Server.Administration;
namespace Microsoft.SDK.SharePointServer.Samples
{
class GetStartedAndCreateSystem
{
const string yourSSPName ="EnterYourSSPNameHere";
const string userName ="domainname\\username";
static void Main(string[] args)
{
SetupBDC();
SetAccessControlListForCurrentUser();
SetAccessControlListForSpecifiedUser();
Console.WriteLine("Press any key to exit...");
Console.Read();
}
static void SetupBDC()
{
SqlSessionProvider.Instance().SetSharedResourceProviderToUse(yourSSPName);
}
public static void SetAccessControlListForCurrentUser()
{
LobSystemInstance mySysInstance = null;
LobSystemInstanceCollection sysInsCollection = ApplicationRegistry.Instance.GetLobSystemInstancesLikeName("AdventureWorksSampleFromCode");
foreach (LobSystemInstance sysInstance in sysInsCollection)
{
if (sysInstance.Name == "AdventureWorksSampleFromCode")
{
mySysInstance = sysInstance;
break;
}
}
LobSystem ls = mySysInstance.LobSystem;
IAccessControlList acl = ls.GetAccessControlList();
String currentIdentity = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
acl.Add(new IndividualAccessControlEntry(currentIdentity, BdcRights.SetPermissions | BdcRights.Execute));
try
{
ls.SetAccessControlList(acl);
}
catch (AccessDeniedException)
{
}
}
public static void SetAccessControlListForSpecifiedUser()
{
LobSystemInstance mySysInstance = null;
LobSystemInstanceCollection sysInsCollection = ApplicationRegistry.Instance.GetLobSystemInstancesLikeName("AdventureWorksSampleFromCode");
foreach (LobSystemInstance sysInstance in sysInsCollection)
{
if (sysInstance.Name == "AdventureWorksSampleFromCode")
{
mySysInstance = sysInstance;
break;
}
}
LobSystem ls = mySysInstance.LobSystem;
IAccessControlList acl = ls.GetAccessControlList();
//replace the domain and user names here
String currentIdentity = userName;
acl.Add(new IndividualAccessControlEntry(currentIdentity, BdcRights.SetPermissions | BdcRights.UseInBusinessDataInLists | BdcRights.SelectableInClients));
try
{
ls.SetAccessControlList(acl);
}
catch (AccessDeniedException)
{
//your exception handling code here
}
Console.WriteLine("Done");
}
}
}
Consulte também
Referência
IAccessControlList De interface
IAccessControlList Membros
Microsoft.Office.Server.ApplicationRegistry.Infrastructure De espaço para nome