Я нахожусь в процессе разработки моего первого модуля Orchard CMS, который будет взаимодействовать с Exchange Server с целью добавления функциональности задач Exchange в Orchard (по сути, обеспечивая веб-управление личными задачами).К сожалению, я не думаю, что Office 365 поддерживает требуемый тип аутентификации.В этом документе Microsoft приведены некоторые инструкции по настройке учетной записи службы с правами на олицетворение для использования веб-служб Exchange.
К сожалению, мне нужно иметь возможность запускать "New-ManagementRoleAssignment""Командлет, чтобы назначить права на олицетворение.Я получаю сообщение об ошибке при попытке выполнить этот командлет:
The term 'New-ManagementRoleAssignment' is not recognized as the name of a cmdlet, function, script file, or operable program.
Я определенно подключен правильно, как указано в предыдущем URL-адресе.Все, что я читаю, говорит о том, что эта команда должна быть доступна.Я что-то пропустил?Я использую версию Office 365 для предприятий, на случай, если это имеет значение.Учетная запись, которую я использую для входа в PowerShell, является моей глобальной учетной записью администратора.
Буду очень признателен за любую помощь и / или понимание!У меня также есть поддержка с Microsoft, поэтому я буду публиковать все, что получаю от них.
Vito
[ПРАВИТЬ] Я решил добавить код для тех, ктоесть сервер Exchange и заинтересованы в этом.Вам потребуется скачать dll веб-службы Exchange, чтобы использовать пространство имен Microsoft.Exchange.WebServices.
using Microsoft.Exchange.WebServices.Data;
using Microsoft.Exchange.WebServices.Autodiscover;
private static ExchangeService _service;
private static void ConnectToExchangeService()
{
_service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
_service.TraceEnabled = true;
_service.Credentials = new System.Net.NetworkCredential("me@domain.com", "password");
AutodiscoverService ads = new AutodiscoverService();
ads.EnableScpLookup = false;
ads.RedirectionUrlValidationCallback = delegate { return true; };
GetUserSettingsResponse grResp = ads.GetUserSettings("me@domain.com", UserSettingName.ExternalEwsUrl);
Uri casURI = new Uri(grResp.Settings[UserSettingName.ExternalEwsUrl].ToString());
_service.Url = casURI;
ControllerContext ctx = new ControllerContext();
ctx.HttpContext.Response.Write("Server Info: " + _service.ServerInfo.VersionString);
ctx.HttpContext.Response.Flush();
}