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); }
}

Field Security Profile Helper的更多相关文章

  1. Wind River Linux 6 Security Profile

    2692407267@qq.com,很多其它内容请关注http://user.qzone.qq.com/2692407267 Wind River Linux 6 Security Profile

  2. Dynamices CRM Permission Issue (Security role UI to privilege mapping)'s solution

    select * from privilege where  privilegeid = 'a4736385-9763-4a64-a44b-cd5933edc631' Security role UI ...

  3. Dynamics CRM 2011-RootComponent Type

    笔者因为时不时要导出solution,对solution xml进行处理,所以把xml中的rootcomponent type列一下  Type Description 1 Entity 2 Attr ...

  4. Understanding and Using HRMS Security in Oracle HRMS

    Understanding and Using HRMS Security in Oracle HRMS Product:Oracle Human Resources Minimum Version: ...

  5. Implementing SQL Server Row and Cell Level Security

    Problem I have SQL Server databases with top secret, secret and unclassified data.  How can we estab ...

  6. 应付配置文件 Profile

    (N) System Administrator > Profile > System Profile Option Name Site Application Responsibilit ...

  7. Security Software Engineer

    Security Software Engineer Are you excited to be part of the VR revolution and work on cutting edge ...

  8. IMS Global Learning Tools Interoperability™ Implementation Guide

    Final Version 1.1 Date Issued:            13 March 2012 Latest version:         http://www.imsglobal ...

  9. P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1

    P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1       May ...

随机推荐

  1. aspnetcore 认证相关类简要说明三

    今天我们再来了解一个很重要的接口IAuthenticationService的实现类AuthenticationService: public class AuthenticationService ...

  2. 【运维】linux命令查看端口占用情况,杀死进程,后台启动进程

    1.查看端口占用情况:> lsof -i:port COMMAND    PID    USER    FD    TYPE   DEVICE    SIZE/OFF    NODE  NAME ...

  3. haproxy开启日志功能

    haproxy在默认情况不会记录日志,除了在haproxy.conf中的global段指定日志的输出外,还需要配置系统日志的配置文件.下面以centos6.4为例,haproxy使用系统自带的rpm报 ...

  4. codeforces 420D Cup Trick

    codeforces 420D Cup Trick 题意 题解 官方做法需要用到线段树+平衡树(? 如果数据小的话似乎可以用莫队).然后代码好长好长.我补了一个只要用到树状数组的做法. 代码 #inc ...

  5. 《java编程思想》有必要买吗

    <java编程思想>有必要买吗 1.看到过好多个这样的提问,其实我一般真的不那么容易分享自己的这点心得的,这是第一次回答这样的“推荐书籍”方面的问题. 我买编程方面的书籍,有一个非常清晰. ...

  6. XtraBackup出现 Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

    解决办法1.建立一个软连接 ln -s /dat/data/mysql/mysql.sock /var/run/mysqld/mysqld.sock 解决办法2:指定--host=127.0.0.1

  7. 阿里嘉年华ADC Workshop PPT分享

    前段时间在阿里嘉年华的workshop做了一些关于memcache高可用和MMM Mod的分享. 下面是相关的PPT,特此分享. ADC官网直接在线查看:http://adc.alibabatech. ...

  8. curl 抓取页面信息

    <?php // 1. 初始化 $ch = curl_init(); // 2. 设置选项,包括URL curl_setopt($ch, CURLOPT_URL, "www" ...

  9. 【idea】配置node

    参考: http://blog.csdn.net/stubbornaccepted/article/details/71374673 http://www.cnblogs.com/duhuo/p/42 ...

  10. 软件分享:将应用一键打包成dmg文件

    简介 苹果软件开发完成后,都要打包成dmg文件.通常的做法也许是到系统自带的磁盘工具里制作dmg文件,但这样做比较繁琐,尤其是要打包多个应用时,每次只能制作一个dmg文件很麻烦.分享一个很好用很方便的 ...