Field Security Profile Helper
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的更多相关文章
- Wind River Linux 6 Security Profile
2692407267@qq.com,很多其它内容请关注http://user.qzone.qq.com/2692407267 Wind River Linux 6 Security Profile
- 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 ...
- Dynamics CRM 2011-RootComponent Type
笔者因为时不时要导出solution,对solution xml进行处理,所以把xml中的rootcomponent type列一下 Type Description 1 Entity 2 Attr ...
- Understanding and Using HRMS Security in Oracle HRMS
Understanding and Using HRMS Security in Oracle HRMS Product:Oracle Human Resources Minimum Version: ...
- 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 ...
- 应付配置文件 Profile
(N) System Administrator > Profile > System Profile Option Name Site Application Responsibilit ...
- Security Software Engineer
Security Software Engineer Are you excited to be part of the VR revolution and work on cutting edge ...
- IMS Global Learning Tools Interoperability™ Implementation Guide
Final Version 1.1 Date Issued: 13 March 2012 Latest version: http://www.imsglobal ...
- 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 ...
随机推荐
- 安装 GraphicsMagick
yum -y install GraphicsMagick GraphicsMagick-devel 实际试了试,上面yum的方式不好使,下面是我实际安装过程: 1.下载最新版 wget ftp:// ...
- Linux下通过samba进行文件共享与挂载
1.在共享服务端安装samba:# yum install samba samba-client.x86_64 samba-common -y 2.在共享服务端需要防火墙开通139.445端口: # ...
- 剑指offer相关问题
1. 变态跳台阶 Fib(n) = Fib(n-1)+Fib(n-2)+Fib(n-3)+..........+Fib(n-n) =Fib(0)+Fib(1)+Fib(2)+..... ...
- C/C++面试问题分类大汇总 ZZ 【C++】
http://www.mianwww.com/html/2014/05/21208.html 指针和引用的区别 指针指向一块内存,它的内容是指向内存的地址:引用是某内存的别名 引用使用是无需解引用,指 ...
- CALayer的additive属性解析
CALayer的additive属性解析 效果: 源码:https://github.com/RylanJIN/ShareOfCoreAnimation // // CAPartAViewContro ...
- 将csv导出json格式
将csv导出json格式 import os,csv,json cf = open('D:\OneDrive\\Tech\\Script\\Powershell_Script\\Uxin_work\\ ...
- 点开无线显示"已连接 安全",但是点击下面无线图标却显示"无法连接internet",解决方案
管理员权限运行“命令提示符” 输入:netsh winsock reset 然后重启电脑即可
- angularJs的指令系统和双向数据绑定
一.langularJs的指令系统 <!DOCTYPE HTML> <html ng-app><!--这种以ng开头的就是指令系统,初始化的一个指令,不仅可以加在html ...
- RedisClient的安装及基本使用
管理redis的可视化客户端目前较流行的有三个:Redis Client ; Redis Desktop Manager ; Redis Studio. 这里目前给大家介绍Redis Client 的 ...
- [枫叶学院] Unity3d高级开发教程 工具集(一) 哈希列表——强大的自己定义数据集
在日常开发中.数据集合是我们不可缺少的重要工具之中的一个.在C#中,.Net Framework也为我们提供了种类繁多,功能多样的数据集工具.在此,我基于List<T> 和 HashTab ...