zoukankan      html  css  js  c++  java
  • crm创建启用停用用户

            public static readonly string entityName = "systemuser";
            public Guid userId = Guid.Empty;

            /// <summary>
            /// 创建用户
            /// </summary>
            public void Create(IOrganizationService service)
            {
                Entity en = new Entity() { LogicalName = entityName };
                en["domainname"] = "test";
                en["fullname"] = "測试";
                userId = service.Create(en);
            }

            /// <summary>
            /// 启用和停用用户
            /// </summary>
            /// <param name="service"></param>
            public void UpdateUserState(IOrganizationService service)
            {
                //启用用户
                UpdateState(entityName, userId, 0, -1, service);
                //停用用户
                UpdateState(entityName, userId, -1, -1, service);
            }

            /// <summary>
            /// 加入和移除安全角色
            /// </summary>
            /// <param name="service">服务</param>
            /// <param name="roleId">安全角色</param>
            public void AddAndRemoveRole(IOrganizationService service,Guid roleId)
            {
                //加入安全角色
                AddConnection(service, "systemuserroles_association", new EntityReference() { LogicalName = "role", Id = roleId });
                //删除安全角色
                RemoveConnection(service, "systemuserroles_association", new EntityReference() { LogicalName = "role", Id = roleId });
            }

            private void UpdateState(string enName, Guid id, int state, int status, IOrganizationService service)
            {
                SetStateRequest setState = new SetStateRequest()
                {
                    EntityMoniker = new EntityReference()
                    {
                        Id = id,
                        LogicalName = enName
                    },
                    State = new OptionSetValue(state),
                    Status = new OptionSetValue(status)
                };
                service.Execute(setState);
            }

            public void AddConnection(IOrganizationService service, string name, params EntityReference[] array)
            {
                Relationship ship = new Relationship(name);
                AssociateRequest request = new AssociateRequest();
                request.Relationship = ship;
                request.Target = new EntityReference() { LogicalName = entityName, Id = userId };
                request.RelatedEntities = new EntityReferenceCollection();
                request.RelatedEntities.AddRange(array);
                service.Execute(request);
            }

            public void RemoveConnection(IOrganizationService service, string name, params EntityReference[] array)
            {
                Relationship ship = new Relationship(name);
                DisassociateRequest request = new DisassociateRequest();
                request.Relationship = ship;
                request.Target = new EntityReference() { LogicalName = entityName, Id = userId };
                request.RelatedEntities = new EntityReferenceCollection();
                request.RelatedEntities.AddRange(array);
                service.Execute(request);
            }

  • 相关阅读:
    silverlight Prism4中文教程(第一章 第三部分)——bluesky234
    SilverLight学习笔记关于Silverlight资源文件(如:图片)的放置位置及其引用
    silverlight布局和式样中的常用三大控件 Canvas Grid StackPanel
    silverlight Prism4中文教程(第一章 第二部分)——bluesky234
    图文详解Silverlight用WCF访问MSSQL数据库(silverlight china)
    本人自写代码(Aspnetpager详细介绍)
    Asp.net 2.0 水晶报表部署问题解决
    VS2005中使用AspNetPager控件成功事例代码(分页超快的哟)
    AspNetPager不显示的N种可能性
    —(一)水晶报表(CrystalReports)的简单应用(配置及发布)
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7380738.html
Copyright © 2011-2022 走看看