ASP.NET с Dynamics CRM API требует проверки подлинности Active Directory - как это достигается? - PullRequest
0 голосов
/ 21 февраля 2012

Я пишу веб-приложение, которое должно взаимодействовать с нашим внутренним API сервера Dynamics CRM. Я использую CRM SDK 1.1 в Visual Studio. Проблема заключается в том, что веб-приложение размещено на удаленном сервере и, по-видимому, должно проходить проверку подлинности с помощью CRM на двух уровнях - через вход в систему, предоставляемый через API, а также через Active Directory.

Это CRM 2011, настроенный в режиме развертывания с выходом в Интернет (IFD) с использованием аутентификации на основе утверждений.

На данном этапе я мало знаю об Active Directory - поэтому вопрос в том, как мне пройти аутентификацию с AD на сервере CRM, с удаленного веб-сервера , чтобы я мог взаимодействовать с API? Я даже не знаю, что гуглить за это. :)

1 Ответ

0 голосов
/ 21 февраля 2012

Здесь описано, как пройти аутентификацию в случае развертывания IFD с аутентификацией на основе утверждений.

Uri organizationUriIFD = new Uri("https://[server]:[port]/XRMServices/2011/Organization.svc");

ClientCredentials credentials = new ClientCredentials();
credentials.UserName.UserName = "username";
credentials.UserName.Password = "password";

IServiceConfiguration<IOrganizationService> config = ServiceConfigurationFactory.CreateConfiguration<IOrganizationService>(organizationUriIFD);

using (Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy(config, credentials))
{
 // This statement is required to enable early-bound type support.
 _serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());

 IOrganizationService _service = (IOrganizationService)_serviceProxy;

 WhoAmIResponse response = (WhoAmIResponse)_service.Execute(new WhoAmIRequest());
 Console.WriteLine(response.UserId.ToString());

 Console.ReadLine();
}
...