using System;

    using Microsoft.Xrm.Sdk;

    using Microsoft.Xrm.Sdk.Messages;

/// <summary>

    /// 安全字段

    /// </summary>

    public class FieldSecurityProfileHelper

    {

        public static readonly string entityName = "fieldsecurityprofile";

        public static readonly string FieldPermission = "FieldPermission";

        public Guid fieldSecurityProfileId = Guid.Empty;

        public Guid fieldPermissionId = Guid.Empty;

/// <summary>

        /// 创建安全字段

        /// </summary>

        public void Create(IOrganizationService service)

        {

            Entity en = new Entity() { LogicalName = entityName };

            en["name"] = "new_name";

            fieldSecurityProfileId = service.Create(en);

        }

/// <summary>

        /// 给安全字段加入团队

        /// </summary>

        /// <param name="service">服务</param>

        /// <param name="teamId">团队</param>

        public void AddTeam(IOrganizationService service,Guid teamId)

        {

            AssociateRequest request = new AssociateRequest();

            request.Relationship = new Relationship("teamprofiles_association");

            request.Target = new EntityReference() { LogicalName = entityName,Id = fieldSecurityProfileId };

            request.RelatedEntities = new EntityReferenceCollection();

            request.RelatedEntities.Add(new EntityReference() { LogicalName = "team" ,Id = teamId });

            service.Execute(request);

        }

/// <summary>

        /// 给安全字段移除团队

        /// </summary>

        /// <param name="service">服务</param>

        /// <param name="teamId">团队</param>

        public void RemoveTeam(IOrganizationService service, Guid teamId)

        {

            DisassociateRequest request = new DisassociateRequest();

            request.Relationship = new Relationship("teamprofiles_association");

            request.Target = new EntityReference() { LogicalName = entityName, Id = fieldSecurityProfileId };

            request.RelatedEntities = new EntityReferenceCollection();

            request.RelatedEntities.Add(new EntityReference() { LogicalName = "team", Id = teamId });

            service.Execute(request);

        }

/// <summary>

        /// 给安全字段加入用户

        /// </summary>

        /// <param name="service">服务</param>

        /// <param name="teamId">用户</param>

        public void AddUser(IOrganizationService service,Guid userId)

        {

            AssociateRequest request = new AssociateRequest();

            request.Relationship = new Relationship("systemuserprofiles_association");

            request.Target = new EntityReference() { LogicalName = entityName, Id = fieldSecurityProfileId };

            request.RelatedEntities = new EntityReferenceCollection();

            request.RelatedEntities.Add(new EntityReference() { LogicalName = "systemuser", Id = userId });

            service.Execute(request);

        }

/// <summary>

        /// 给安全字段移除用户

        /// </summary>

        /// <param name="service">服务</param>

        /// <param name="teamId">用户</param>

        public void RemoveUser(IOrganizationService service,Guid userId)

        {

            DisassociateRequest request = new DisassociateRequest();

            request.Relationship = new Relationship("systemuserprofiles_association");

            request.Target = new EntityReference() { LogicalName = entityName, Id = fieldSecurityProfileId };

            request.RelatedEntities = new EntityReferenceCollection();

            request.RelatedEntities.Add(new EntityReference() { LogicalName = "systemuser", Id = userId });

            service.Execute(request);

        }

/// <summary>

        /// 把安全字段和实体关联

        /// </summary>

        /// <param name="service">服务</param>

        /// <param name="entity">实体</param>

        public void CreateAttribute(IOrganizationService service,string entity)

        {

            Entity en = new Entity() { LogicalName = FieldPermission };

            //实体名称

            en["entityname"] = entity;

            en["canread"] = new OptionSetValue(FieldPermissionType.Allowed);

            en["attributelogicalname"] = "new_attributename";

            en["fieldsecurityprofileid"] = new EntityReference() { LogicalName = entityName,Id = fieldSecurityProfileId };

            fieldSecurityProfileId = service.Create(en);

        }

/// <summary>

        /// 删除实体里面的安全字段

        /// </summary>

        /// <param name="service">服务</param>

        public void RemoveAttribute(IOrganizationService service)

        {

            service.Delete(FieldPermission, fieldSecurityProfileId);

        }

/// <summary>

        /// 删除安全字段

        /// </summary>

        public void Delete(IOrganizationService service)

        {

            service.Delete(entityName, fieldSecurityProfileId);

        }

    }

crm操作安全字段的更多相关文章

  1. mysql数据表的基本操作:表结构操作,字段操作

    本节介绍: 表结构操作 创建数据表. 查看数据表和查看字段. 修改数据表结构 删除数据表 字段操作 新增字段. 修改字段数据类型.位置或属性. 重命名字段 删除字段 首发时间:2018-02-18  ...

  2. oracle 下操作blob字段是否会产生大量redo

    操作blob字段是否会产生大量redo,答案是不会.以下来做一个实验,測试数据库版本号是11.2.0.1.0: --创建一张表做測试之用 create table test_blob (   id n ...

  3. django之model,crm操作

    一.字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bigint自增列,必须填入参数 pr ...

  4. (18)模型层 -ORM之msql 多表操作(字段的属性)

    数据库表的对应关系 1.一对一   #关联字段写在那张表都可以 PS:只要写OneToOneField就会自动加一个id 2.一对多  #关系确立,关联字段写在多的一方 3.多对多   #多对多的关系 ...

  5. Dynamics CRM 之汇总字段

    用插件汇总数据,速度很慢,导数据的时候更慢!那就用汇总字段- - 新建个汇总字段,字段类型选择汇总.点击编辑进入逻辑编辑 相关实体:对当前实体或者相关联的实体的字段值进行判断筛选. 筛选器:对相关实体 ...

  6. crm操作业务部门

    using System;     using System.Linq;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messag ...

  7. 1122 django属性操作orm字段数据操作

    目录 1. 静态文件的配置 手动静态文件的访问资源 静态文件的动态绑定 2.request方法 2.1 请求方式 2.2 获取前端的请求方式 request.method 2.3 request方法 ...

  8. 【转载】JDBC操作LOB字段

    转自:http://www.cnblogs.com/tengtao93/p/4984689.html 1.LOB(Large Objects)大对象,是用来存储大量的二进制和文本数据的一种数据类型(一 ...

  9. Dynamics CRM - 不同类型字段在 Plugin 里的赋值方式

    在编写 Plugin 代码之前,我们可以需要用 SDK bin 目录下的 CrmSvcUtil.exe 来将 CRM Site 上所有的 Entity 转换成类,而 Entity 里的 Field 也 ...

随机推荐

  1. AJAX实现类似百度的搜索提示,自动补全和键盘、鼠标操作

    <script type="text/javascript"> $(document).ready(function(){ var highlightIndex = - ...

  2. asp.net下利用MVC模式实现Extjs表格增删改查

    在网上看到有很多人写extjs下的表格控件的增删改查,但是大多数都是直接从后台读取数据,很少有跟数据库进行交互的模式. 今天就来写一个这样的例子.欢迎大家交流指正. 首先简单介绍一下MVC模式,MVC ...

  3. linux+Qt程序如何打包发布

    源地址:http://zhidao.baidu.com/link?url=UTWEoXS21B4p1L5LJmYgGBMAr0dTdXfzmaGbWeltnwQLA3Uc9_K9RcDQFFIArbx ...

  4. QModelIndex有internalPointer()函数,可以存任何数据,另有QAbstractItemModel::createIndex来创造节点

    整个model的节点数据,都靠它来记录了. 另有一个创造节点的函数(自带函数): QModelIndex QAbstractItemModel::createIndex(int arow, int a ...

  5. 碰撞回避算法(一) Velocity Obstacle

    碰撞回避是机器人导航,游戏AI等领域的基础课题.几十年来,有很多算法被提出.注意这里主要指的是局部的碰撞回避算法.尽管和全局的路径规划算法(A*算法等)有千丝万缕的联系.可是还是有所不同的(局部的碰撞 ...

  6. js获取手机型号和手机操作系统版本号

    1.js 判断IOS版本号 先来观察 iOS 的 User-Agent 串: iPhone 4.3.2 系统:Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 l ...

  7. pig对null的处理(实际,对空文本处理为两种取值null或‘’)

    pig对文本null的处理非常特殊.会处理成两种null,还会处理成''这样的空值. 比方,读name,age,sex日志信息.name取值处理,假设记录为".,,"这样,会将na ...

  8. HDU4452Running Rabbits(模拟)

    HDU4452Running Rabbits(模拟) pid=4452" target="_blank" style="">题目链接 题目大意: ...

  9. mfc menu用法一

    #define IDM_NEW 0x1002#define IDM_EXIT 0x1003#define IDM_HELP 0x1004#define IDM_ABOUT 0x1005 hMenu = ...

  10. 暂停和屏蔽右键网页中的Flash

    如何暂停网页中的Flash?原理很简单,就是屏蔽Flash的消息即可.屏蔽右键也可以通过此方法 直接贴代码吧,加了注释,很容易就能懂了 新建工程,加一个WebBrowser,再加两个按钮.Flash ...