在我的CRM服务器上使用AD身份验证

时间:2016-08-09 11:49:07

标签: azure authentication wsdl dynamics-crm-4

我有以下代码创建CRM4服务对象:

        private CrmService CreateServiceObject()
        {
            // CRM Discovery Service
            CrmDiscoveryService crmDiscoveryService = new CrmDiscoveryService();
            crmDiscoveryService.Url = WebConfigurationManager.AppSettings["CRM_DiscoveryService"];

            // Network Credentials
            NetworkCredential credentials = new NetworkCredential();
            credentials.UserName = WebConfigurationManager.AppSettings["CRM_Username"];
            credentials.Password = WebConfigurationManager.AppSettings["CRM_Password"];
            credentials.Domain = WebConfigurationManager.AppSettings["CRM_Domain"];
            crmDiscoveryService.Credentials = credentials;

            // Organization Request and Response
            RetrieveOrganizationsRequest organizationRequest = new RetrieveOrganizationsRequest();
            RetrieveOrganizationsResponse organizationResponse = (RetrieveOrganizationsResponse)crmDiscoveryService.Execute(organizationRequest);

            foreach (OrganizationDetail og in organizationResponse.OrganizationDetails)
            {
                if (og.OrganizationName == WebConfigurationManager.AppSettings["CRM_OrganisationName"])
                {
                    // Build request
                    RetrieveCrmTicketRequest ticketRequest = new RetrieveCrmTicketRequest();

                    // Build SDK token
                    MyBudgetWeb.CrmServiceRef.CrmAuthenticationToken token = new CrmServiceRef.CrmAuthenticationToken();
                    token.AuthenticationType = 0;
                    token.OrganizationName = og.OrganizationName;

                    // Build CRM Service
                    CrmService crmService = new CrmService();
                    crmService.CrmAuthenticationTokenValue = token;
                    crmService.Url = og.CrmServiceUrl;
                    crmService.Credentials = credentials;

                    return crmService;
                }
            }

            return null;
        }

以下值包含在我的web.config

    <add key="CRM_DiscoveryService" value="http://mysite.cloudapp.net/mscrmservices/2007/AD/CrmDiscoveryService.asmx" />
    <add key="CRM_ServiceWsdl" value="http://mysite.cloudapp.net/MSCrmServices/2007/CrmService.asmx" />
    <add key="CRM_MetadataService" value="http://mysite.cloudapp.net/MSCrmServices/2007/MetadataService.asmx" />

当我从内部测试时,它按预期工作,但当我将应用程序部署到托管它的azure网站时,我无法连接到crm服务器。 CRM服务器和网站都部署在Azure中,并且创建了一个防火墙规则,允许我从网站打开的服务器上的Web浏览器中连接到CRM服务器。

我们以前将此设置为SPLA身份验证,但由于我们的系统发生了变化,现在又恢复了AD身份验证。

是否有任何我缺少的东西允许我的网站代码通过WSDL连接到CRM服务?

0 个答案:

没有答案