mscrm 4.0 获取当前用户角色

var script = document.createElement('script');
script.setAttribute(
'runat''server');
script.setAttribute(
'language''javascript');
script.text 
= "function UserHasRole(roleName){var oXml = GetCurrentUserRoles();if(oXml != null){var roles = oXml.selectNodes(\'//BusinessEntity/q1:name\');if(roles != null){for( i = 0; i < roles.length; i++){if(roles[i].text == roleName){return true;}}}}return false;}function GetCurrentUserRoles(){var xml =\"<?xml version=\'1.0\' encoding=\'utf-8\'?><soap:Envelope xmlns:soap=\'http://schemas.xmlsoap.org/soap/envelope/\' xmlns:xsi=\'http://www.w3.org/2001/XMLSchema-instance\' xmlns:xsd=\'http://www.w3.org/2001/XMLSchema\'>\" + GenerateAuthenticationHeader() + \" <soap:Body><RetrieveMultiple xmlns=\'http://schemas.microsoft.com/crm/2007/WebServices\'><query xmlns:q1=\'http://schemas.microsoft.com/crm/2006/Query\' xsi:type=\'q1:QueryExpression\'><q1:EntityName>role</q1:EntityName><q1:ColumnSet xsi:type=\'q1:ColumnSet\'><q1:Attributes><q1:Attribute>name</q1:Attribute></q1:Attributes></q1:ColumnSet><q1:Distinct>false</q1:Distinct><q1:LinkEntities><q1:LinkEntity><q1:LinkFromAttributeName>roleid</q1:LinkFromAttributeName><q1:LinkFromEntityName>role</q1:LinkFromEntityName><q1:LinkToEntityName>systemuserroles</q1:LinkToEntityName><q1:LinkToAttributeName>roleid</q1:LinkToAttributeName><q1:JoinOperator>Inner</q1:JoinOperator><q1:LinkEntities><q1:LinkEntity><q1:LinkFromAttributeName>systemuserid</q1:LinkFromAttributeName><q1:LinkFromEntityName>systemuserroles</q1:LinkFromEntityName><q1:LinkToEntityName>systemuser</q1:LinkToEntityName><q1:LinkToAttributeName>systemuserid</q1:LinkToAttributeName><q1:JoinOperator>Inner</q1:JoinOperator><q1:LinkCriteria><q1:FilterOperator>And</q1:FilterOperator><q1:Conditions><q1:Condition><q1:AttributeName>systemuserid</q1:AttributeName><q1:Operator>EqualUserId</q1:Operator></q1:Condition></q1:Conditions></q1:LinkCriteria></q1:LinkEntity></q1:LinkEntities></q1:LinkEntity></q1:LinkEntities></query></RetrieveMultiple></soap:Body></soap:Envelope>\";var xmlHttpRequest = new ActiveXObject(\'Msxml2.XMLHTTP\');xmlHttpRequest.Open(\'POST\', \'/mscrmservices/2007/CrmService.asmx\', false);xmlHttpRequest.setRequestHeader(\'SOAPAction\',\'http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple\');xmlHttpRequest.setRequestHeader(\'Content-Type\', \'text/xml; charset=utf-8\');xmlHttpRequest.setRequestHeader(\'Content-Length\', xml.length);xmlHttpRequest.send(xml);var resultXml = xmlHttpRequest.responseXML;return(resultXml);}function GetCurrentUserId(){var soapBody = \"<soap:Body><Execute xmlns=\'http://schemas.microsoft.com/crm/2007/WebServices\'><Request xsi:type=\'WhoAmIRequest\' /></Execute></soap:Body>\";var soapXml = \"<soap:Envelope  xmlns:soap=\'http://schemas.xmlsoap.org/soap/envelope/\' xmlns:xsi=\'http://www.w3.org/2001/XMLSchema-instance\' xmlns:xsd=\'http://www.w3.org/2001/XMLSchema\'>\" + GenerateAuthenticationHeader() + soapBody + \"</soap:Envelope>\";var xmlhttp = new ActiveXObject(\'Msxml2.XMLHTTP\');xmlhttp.open(\'POST\', \'/MSCRMservices/2007/crmservice.asmx\', false);xmlhttp.setRequestHeader(\'Content-Type\', \'text/xml;charset=utf-8\');xmlhttp.setRequestHeader(\'SOAPAction\', \'http://schemas.microsoft.com/crm/2007/WebServices/Execute\');xmlhttp.send(soapXml);xmlDoc= new ActiveXObject(\'Microsoft.XMLDOM\');xmlDoc.async=false;xmlDoc.loadXML(xmlhttp.responseXML.xml);return xmlDoc.getElementsByTagName(\'UserId\')[0].childNodes[0].nodeValue;}"
document.head 
= document.documentElement.firstChild;
document.head.appendChild(script);
原文地址:https://www.cnblogs.com/seerlin/p/1986243.html