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. javascript面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)

    面向对象可以把程序中的关键模块都视为对象,而模块拥有属性及方法.这样我们如果把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作.接下来将为大家讲解在JS中面向对象的实现.   工厂 ...

  2. Android中View绘制优化之一---- 优化布局层次

    本文原创, 转载请注明出处:http://blog.csdn.net/qinjuning 前言,竟然是翻译,当然得弄的有板有眼. 照着大作家格式来咯 , - - . 译序 最近一直在做锁屏界面,之前也 ...

  3. 基于unity3d和leap motion的拼图游戏

    近期用unity3d引擎做了一个拼图游戏,会分几次写完,以此作为总结. 本文基本查找了网上能查到的全部资料作为參考.也算是大家节省了时间. 眼下仅仅完毕了拼图部分,leap motion手势控制部分会 ...

  4. MySql自己定义排序

    查询语句: select id,name,stauts from special where id in (50,51,52,53,54,55) order by FIELD( id ,51,50, ...

  5. EXT2/EXT3文件系统(一)

    整理自<鸟哥的Linux私房菜>,整理者:华科小涛http://www.cnblogs.com/hust-ghtao/ 1.文件系统概念引入 文件系统是一种存储和组织计算机数据的方法,它使 ...

  6. delphi中无类型文件读写

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  7. 【Demo 0003】Android 事件

    本章学习要点:        1.  了解Android中资源用途:        2.  掌握资源使用通用规则:        3.  掌握具体资源使用方法;

  8. nginx的反向代理和负载均衡的区别是什么 - 开源中国社区

    nginx的反向代理和负载均衡的区别是什么 - 开源中国社区   nginx的反向代理和负载均衡的区别是什么 #user  nobody;worker_processes  1;#error_log  ...

  9. 通过OpenSSL解码X509证书文件

    在Windows平台下.假设要解析一个X509证书文件,最直接的办法是使用微软的CryptoAPI. 可是在非Windows平台下,就仅仅能使用强大的开源跨平台库OpenSSL了.一个X509证书通过 ...

  10. ListView数据动态刷新

    在Android开发中用到ListView时,经常遇到要更改ListView内容的情形,比如删除或增加ListView中显示的条目,这里给大家提供一下思路:不论ListView要显示的对象是什么(如: ...