Аутентификация с помощью веб-службы MS Crm - PullRequest
1 голос
/ 10 июня 2011

Я ищу способ аутентификации пользователя (с помощью имени пользователя и пароля) через API веб-служб Microsoft CRM 4.0.В идеале, я хотел бы отфильтровать список проектов, основываясь на том, к каким из них имеет доступ авторизованный пользователь.Я могу выяснить вторую часть, но не могу найти способ аутентификации пользователя.В настоящее время все веб-службы обрабатываются в веб-службе следующим образом:

MyWebServices.CrmService svc = new MyWebServices.CrmService();
MyWebServices.CrmAuthenticationToken token = new MyWebServices.CrmAuthenticationToken();
token.OrganizationName = "MyCRM";
token.AuthenticationType = 0;
svc.CrmAuthenticationTokenValue = token;
svc.PreAuthenticate = true;
svc.Credentials = System.Net.CredentialCache.DefaultCredentials;
svc.Credentials = new NetworkCredential("hj", "mypass", "mydomain");

Затем через службу можно совершать звонки.Я предполагаю, что мог бы потенциально попытаться пройти аутентификацию в CRM через имя пользователя / пароль пользователя, но это как-то не так.

1 Ответ

1 голос
/ 11 июня 2011

Если вы находитесь в локальной среде, вы сможете использовать следующий код для получения действительной службы CRM, которую можно использовать для получения ваших проектов.

public static Microsoft.Crm.SdkTypeProxy.CrmService GetCrmService(string crmServerUrl, string organizationName, System.Net.NetworkCredential networkCredential)
{
    // Setup the Authentication Token
    CrmAuthenticationToken crmAuthenticationToken = new CrmAuthenticationToken
                                           {
                                               OrganizationName = organizationName,
                                               AuthenticationType = 0
                                           };

    var crmServiceUriBuilder = new UriBuilder(crmServerUrl) { Path = "//MSCRMServices//2007//CrmService.asmx" };

    // Instantiate a CrmService
    var crmService = new Microsoft.Crm.SdkTypeProxy.CrmService
    {
        Url = crmServiceUriBuilder.ToString(),
        UseDefaultCredentials = false,
        Credentials = networkCredential,
        CrmAuthenticationTokenValue = crmAuthenticationToken
    };

    return crmService;
}
...