Wednesday, October 12, 2011

Dynamics CRM 2011 : C# Code for Removing Assigned Security Role to a User


Security Roles are associated with Users via N:N relationship (relationship name: systemuserroles_association). So now in CRM 2011 we can use DisassociateRequest to remove programmatically user assigned security roles .

[C# Code]:
The c # code below can be used in to remove the User assigned Security Role.


    public void RemoveUserSecurityRole(Guid prmUserId, Guid prmSecurityRoleId, IOrganizationService prmCrmWebService)
    {
        // Create new Disassociate Request object for creating a N:N link between User and Security
        DisassociateRequest wod_DisassociateRequest = new DisassociateRequest ();

        // Create related entity reference object for associating relationship
        // we will pass (SystemUser) record reference of user for which the role is required to be removed
           
        wod_DisassociateRequest.RelatedEntities = new EntityReferenceCollection();
        wod_DisassociateRequest.RelatedEntities.Add(new EntityReference("systemuser", prmUserId));

        // Create new Relationship object for System User & Security Role entity schema and assigning it
        // to request relationship property
           
        wod_DisassociateRequest.Relationship = new Relationship("systemuserroles_association");

        // Create target entity reference object for associating relationship
        wod_DisassociateRequest.Target = new EntityReference("role", prmSecurityRoleId);

        // Passing DisassociateRequest object to Crm Service Execute method for removing Security Role to User
        prmCrmWebService.Execute(wod_DisassociateRequest);
    }


No comments:

Post a Comment