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. linux命令:scp

    有时候ftp被禁用了, 就用scp替代; 命令行: scp from to_user@to_ip:dir_to/file_name 执行该命令之后,按照提示输入to_host的登陆密码即可. scp ...

  2. MYSQL 语法大全自己总结的

    mysql语法大全 --------数据链接---------------------数据库服务启动net start mysql --关闭服务net stop mysql --登录 -u,-p后面不 ...

  3. ASP.NET - TreeView控件,只操作最后一级节点

    效果: 使用母板页进行,左右页面进行跳转. 绑定TreeView控件:http://www.cnblogs.com/KTblog/p/4792302.html 主要功能: 点击节点的时候,只操作最后一 ...

  4. vmware 中 ubuntu linux 安装vmware tools

    参考官方方法 http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&ex ...

  5. 记录路径dp-4713-Permutation

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4713 题目大意: 题意同HDU 3092这不过这题要输出路径. 解题思路: 思路同HDU 3092. ...

  6. 配置BeanUtils包,同时也是对导入第三包的步骤说明

    BeanUtils是由Apache公司开发的针对操作JavaBean的工具包. 对于JavaBean,简单的来说,就是要有一个空参的构造器和对属性的getXXX方法和setXXX方法. 在由JDK提供 ...

  7. 积累的VC编程小技巧之打印相关

    1.修改打印预览的ToolBar 为AFX_IDD_PREVIEW_TOOLBAR这个ID创建一个DialogBar.则系统就会用新创建的DialogBar代替系统默认的那个 2.关于打印 1.要打印 ...

  8. 【web开发学习笔记】Structs2 Action学习笔记(一个)

    1.org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter准备和运行 2. <filter-mapping&g ...

  9. centos下chm阅读器

    xchm kchmviewer chmsee

  10. hdu1171(DP求两份物品的价值相差最小)

    题目信息: 给出一些物品的价值和个数.分成两份,是这两份的价值相差最小(DP方法) http://acm.hdu.edu.cn/showproblem.php? pid=1171 AC代码: /** ...