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. Eclipse用法和技巧十:显示代码outline

    在一个文件中快速找到某一个方法或者某一个作用域,可以使用 Ctrl+O或者Ctrl+F3,快速显示当前代码的outline,进行快速查找.效果如下:        这里主要是补充一些后续操作,能更加方 ...

  2. ajax提交整个form表单

    在项目开发中,有时提交form表单时不能单单用action或者jquery的 表单提交方法有三种,主要说下第三种 第一种:用form自带属性action提交 第二种:用jquery提交:$(" ...

  3. 安装Linux_[CentOS]系统

    Lunx操作系统安装 虚拟机:VirtualBox. 操作系统的选择:CentOS 6.3. (64位/32位都可). (CentOS:诞生于社区的企业级操作系统). Install Or Upgra ...

  4. 关于Smartforms换页的

    smartforms中有系统变量SFSY-PAGE是总页码,SFSY-FORMPAGES是当前页,可以最后的窗体中做个判断 1.把窗体设置成最终窗体 2.新增一个命令,当前页等于最后一页才输出改内容, ...

  5. JSP自定义标签——简单标签(1)

    前面一篇博客介绍了自定义标签的传统标签使用方式,但是我们会发现,使用传统标签非常的麻烦,而且接口还多,现在传统标签基本都没用了,除了一些比较久的框架.Sun公司之后推出了一个新的标签使用方式,称之为简 ...

  6. 【ASP.NET Web API教程】2.4 创建Web API的帮助页面

    原文:[ASP.NET Web API教程]2.4 创建Web API的帮助页面 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. 2.4 ...

  7. NYOJ 1085 数单词 (AC自己主动机模板题)

    数单词 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 为了可以顺利通过英语四六级考试,如今大家每天早上都会早起读英语. LYH本来以为自己在6月份的考试中能够通过六 ...

  8. hdu 4714 Tree2cycle dp

    用树形dp做的,dp[t][i]表示t及其孩子入度都已经小于等于2并且t这个节点的入度等于i的最优解. 那么转移什么的自己想想就能明白了. 关键在于这个题目会暴栈,所以我用了一次bfs搜索出节点的顺序 ...

  9. 关于Android配色 自适应颜色的实现

    在Android4.4系统中,更加详细地介绍了关于颜色的细节并提供了使用colour的新教程,以使我们的应用更加独一无二.也就是说,作为一个设计师或者开发者,为你的APP做完美的配色已经变成了你的职责 ...

  10. Coins (poj 1742 &amp;&amp; hdu 2844 DP)

    Language: Default Coins Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 30047   Accepte ...