Я пытаюсь подключиться к среде CRM 2011 в Интернете. Я могу подключиться через «Консольное приложение», но когда я пытаюсь подключиться через приложение «ASP.net» с тем же кодом, он не работает, он дает мне «Ошибка аутентификации "-error ({" Небезопасная или неправильно защищенная ошибка была получена от другой стороны. См. внутреннее исключение FaultException для кода ошибки и подробностей. "}).CRM 2011 Online через приложение ASP.net не работает, тот же код через консольное приложение работает -> «Ошибка аутентификации» -error
Есть ли что-то особенное, что нам нужно сделать, чтобы оно работало в среде «ASP.net». Я тестировал несколько решений, которые я нашел в Интернете, но все это дает мне ту же ошибку.
«код» -snippet моего упрощенного кода:
private static ClientCredentials GetDeviceCredentials()
{
return Microsoft.Crm.Services.Utility.DeviceIdManager.LoadOrRegisterDevice();
}
protected void Button1_Click(object sender, EventArgs e)
{
//Authenticate using credentials of the logged in user;
string UserName = "*****"; //your Windows Live ID
string Password = "*****"; // your password
ClientCredentials Credentials = new ClientCredentials();
Credentials.UserName.UserName = UserName;
Credentials.UserName.Password = Password;
Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
//This URL needs to be updated to match the servername and Organization for the environment.
Uri OrganizationUri = new Uri("https://*****.crm4.dynamics.com/XRMServices/2011/Organization.svc"); //this URL could copy from Setting --> Developer Source
Uri HomeRealmUri = null;
//OrganizationServiceProxy serviceProxy;
using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, GetDeviceCredentials()))
{
IOrganizationService service = (IOrganizationService)serviceProxy;
OrganizationServiceContext orgContext = new OrganizationServiceContext(service);
var theAccounts = orgContext.CreateQuery<Account>().Take(1).ToList();
Response.Write(theAccounts.First().Name);
}
}
Я попробовал несколько вещей, например, удаление содержимого «LiveDeviceID» -folder с повторным запуском инструмента регистрации устройств. но странно, что он работает в «консольном приложении», но не на моем «asp.net» -решении ...
PS: Я могу сгенерировать «контекстный» -файл через crmsvcutil.exe/url: https://org.crm4.dynamics.com/XRMServices/2011/Organization.svc /o:crm.cs/у: имя пользователя/р: пароль/ди: deviceUserName/дп: devicPWD
Помните, что учетные данные устройства зависят от вашего кода. Если внутри сервера, на котором опубликовано ваше веб-приложение asp.net, учетные данные устройства не могут быть сгенерированы (например, проблемы с правами доступа), код не будет работать (но, возможно, будет генерировать исключение, я не уверен). Кстати, ваша организация все еще использует liveid или office365? –
Что я не понимаю, что он работает для «консольного приложения», но он не работает для «ASP.net». Я запускаю свой ASP.net локально, и для обоих кодов используются одинаковые учетные данные устройства. Когда я поставлю свой asp.net в Интернете, мне придется регистрировать устройство снова, я думаю. – Freeetje