/// <summary>
/// 设置用户的上级
/// </summary>
/// <param name="service">服务</param>
/// <param name="userId">用户</param>
/// <param name="parentId">上级</param>
public void SetUserParent(IOrganizationService service, Guid userId, Guid parentId)
{
SetParentSystemUserRequest request = new SetParentSystemUserRequest();
//当前用户
request.UserId = userId;
//上级
request.ParentId = parentId;
//是否保存子用户
request.KeepChildUsers = true; service.Execute(request);
}

背景: crm 从旧系统重新迁移到新系统.

以上代码可以随便放在一个plugin里执行就行了.

引自:http://blog.csdn.net/y_f123/article/details/37870313

/// <summary>
/// 删除用户的上级
/// </summary>
public void RemoveParent(IOrganizationService service,Guid userId)
{
RemoveParentRequest removeRequest = new RemoveParentRequest();
removeRequest.Target = new EntityReference() { LogicalName = "systemuser", Id = userId };
service.Execute(removeRequest);
} /// <summary>
/// 设置用户的业务部门
/// </summary>
/// <param name="service">服务</param>
/// <param name="userId">用户Id</param>
/// <param name="businessId">部门Id</param>
public void SetUserBusiness(IOrganizationService service, Guid userId,Guid businessId)
{
//更改用户的业务部门,会重置角色
SetBusinessSystemUserRequest request = new SetBusinessSystemUserRequest();
request.BusinessId = businessId;
request.UserId = userId;
//安全角色
request.ReassignPrincipal = new EntityReference() { LogicalName = "role",Id = Guid.NewGuid() };
service.Execute(request);
} /// <summary>
/// 设置用户的上级
/// </summary>
/// <param name="service">服务</param>
/// <param name="userId">用户</param>
/// <param name="parentId">上级</param>
public void SetUserParent(IOrganizationService service,Guid userId,Guid parentId)
{
SetParentSystemUserRequest request = new SetParentSystemUserRequest();
//当前用户
request.UserId = userId;
//上级
request.ParentId = parentId;
//是否保存子用户
request.KeepChildUsers = true; service.Execute(request);
}

crm SDK 设置用户的上级的更多相关文章

  1. APUE学习之三个特殊位 设置用户ID(set-user-ID),设置组ID(set-group-ID),sticky

    设置用户ID(set-user-ID),设置组ID(set-group-ID),sticky   set-user-ID: SUID      当文件的该位有设置时,表示当该文件被执行时,程序具有文件 ...

  2. 【转】linux 设置用户id 设置组id

    linux 设置用户id 设置组id   转自 linux 设置用户id 设置组id   最近看apue,简单记录对设置用户id理解(设置组id同理). 1. 相关的id好像很多,共有哪些? 文件2个 ...

  3. UNIX文件的权限之“设置用户ID位”

    用stat函数可以获取一个文件的状态信息,原型是这样的: int stat(const char *path, struct stat *buf); 其中结构体stat的结构: struct stat ...

  4. 设置用户ID和设置组ID

    与一个进程关联的ID有6个或更多,如下图所示: 与每个进程相关联的用户ID和组ID 实际用户ID 实际组ID 我们实际是谁 有效用户ID 有效组ID 附加组ID 用于文件访问权限检索 保存的设置用户I ...

  5. 文件和目录之设置用户ID和设置组ID

    与一个进程相关联的ID有6个或更多,它们如表4-4所示: 表4-4 与每个进程相关联的用户ID和组ID 实际用户ID                            我们实际上是谁 实际组ID ...

  6. YII设置用户访问过滤

    设置用户访问过滤 1.哪个控制器设置访问过滤,就在哪个控制器中添加如下代码 class XxxController extends Controller { //当前控制器是否使用过滤功能 publi ...

  7. linux系统学习笔记:无死角理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID

    一.基本概念 实际用户ID(RUID):用于标识一个系统中用户是谁,一般是在登录之后,就被唯一的确定,就是登录的用户的uid. 有效用户ID(EUID):用于系统决定用户对系统资源的权限,也就是说当用 ...

  8. 实际用户ID,有效用户ID和设置用户ID

    摘自http://blog.csdn.net/guosha/article/details/2679334 实际用户ID,有效用户ID和设置用户ID 看UNIX相关的书时经常能遇到这几个概念,但一直没 ...

  9. 实际用户ID,有效用户ID及设置用户ID

    实际用户ID,有效用户ID和设置用户ID 看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解.今天好好区分了一下这几个概念并总结如下.说白了这几个U ...

随机推荐

  1. day 50 Java Script 学习

    前端基础之JavaScript   JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中) ...

  2. The key of real time embedded system

    对于实时嵌入式系统来说,最重要的是每一个进程所需时间的可检测性,可预测性.要不你的实时性是没有办法保证的.有些时候你对一些没有从事过嵌入式开发的人谈这个进程(TASK)设计是按8ms被调度一次,他们会 ...

  3. 套接字选项——getsockopt和setsockopt

    这两个函数仅用于套接字 #include <sys/socket.h> int getsockopt(int sock, int level, int optname, void *opt ...

  4. 20165308 2017-2018-2 《Java程序设计》第四周学习总结

    20165308 2017-2018-2 <Java程序设计>第四周学习总结 知识点 第五章 1.子类声明中通常用关键字extend来定义一个子类. 2.子类和父类在同一包中的继承性,继承 ...

  5. Python3:sorted()函数及列表中的sort()函数

    一.sort,sorted函数介绍:   Sort函数是list列表中的函数,而sorted可以对list或者iterator进行排序.   下面我们使用help来查看他们的用法及功能: sort: ...

  6. 说明os,sys模块不同?并列举常用的模块方法

    官方解释: os: This module provides a portable way of usingoperating system dependent functionality. 翻译:提 ...

  7. thinkphp5 列表页数据分页查询2-带搜索条件

    一.控制器部分 <?php namespace app\user\controller; use app\index\controller\Common; use app\user\model\ ...

  8. STL 的 vector 根据元素的值来删除元素的方法

    vector 的 erase( ) 只能删除迭代器,所以要想删某种值的元素,需要这样: 假设有一个 vector 叫 vt ,则 vt.erase( remove( vt.begin() , vt.e ...

  9. Request.QueryString()和Request()和Request.Form();

    一. querystring的用法及原理 当页面上的 FORM以 GET方式向页面发送请求数据 (如数据含有不安全字符,则浏览器先将其转换成 16进制的字符再传送,如空格被转成 %20)时, WEB ...

  10. elasticsearch 聚合函数 max double精度损失bug

    测试样例数据{ "size" : 0, "query" : { "bool" : { "must" : { " ...