CRM 2011 se connecter à l'organisation.svc à l'aide de C#
Le CRM 2011 est le programme d'installation avec ADFS et HTTPS. Je suis en train d'essayer de se connecter à l'organisation.svc de page web personnalisée qui repose sur le même IIS avec le CRM 2011, mais comme d'un autre site web à l'aide de ce code:
OrganizationServiceProxy serviceProxy;
ClientCredentials clientCredentials = new ClientCredentials();
clientCredentials.UserName.UserName = "admin";
clientCredentials.UserName.Password = "pass";
Guid contactId = Guid.Empty;
Uri OrganizationUri = new Uri(String.Format("https://organization.crmdev.com:port/XRMServices/2011/Organization.svc"));
Uri HomeRealmUri = new Uri(String.Format("https://organization.crmdev.com:port/XRMServices/2011/Discovery.svc"));
using (serviceProxy = new OrganizationServiceProxy(OrganizationUri, null, clientCredentials, null))
{
serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
IOrganizationService service = (IOrganizationService)serviceProxy;
Entity contact = new Entity("contact");
contact.Attributes["lastname"] = "oi oi";
contactId = service.Create(contact);
}
Il renvoie un message d'erreur:
Chirographaire ou mal sécurisé faute a été reçue de l'autre partie. Voir l'exception FaultException interne pour le code et les détails.ID3242: Le jeton de sécurité n'a pas pu être authentifiée et autorisée.
et dans l'observateur d'événements, je vois l'erreur:
Account For Which Logon Failed:
Security ID: NULL SID
Account Name: admin
Account Domain:
Failure Reason: Unknown user name or bad password.
bien que je donne le nom d'utilisateur correct et le mot de passe..
et si j'essaie de le remplacer:
using (serviceProxy = new OrganizationServiceProxy(OrganizationUri, null, clientCredentials, null))
avec:
using (serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealUri, clientCredentials, null))
il retourne:
Objet de référence non définie à une instance d'un objet.
parce que serviceProxy est null.
OriginalL'auteur Greg Oks | 2012-08-07
Vous devez vous connecter pour publier un commentaire.
Donc, je viens juste de commencer à utiliser ADFS moi-même, je vous suggérerais d'avoir une lecture de Active Directory et de l'Authentification Basée sur les Revendications si vous havnt déjà.
Aussi en regardant ton code je ne pense pas que votre HomeRealmUri est correct. Vous semblez avoir donné l'adresse du CRM, Service de Découverte. Je pense que vous êtes d'accord pour le laisser comme null si vous avez seulement un seul ADFS dans le jeu. Comme décrit dans la MSDN ici.
Je me serais attendu à ressembler à ceci: urn:fédération:contoso
Pour le nom d'utilisateur je crois que vous avez besoin de spécifier le nom de domaine, qui habituellement vous avez à faire dans ce format: nom d'utilisateur@domaine
Vous pouvez également regarder cette exemple son d'un seul signe sur la page web qui parle de Crm, qui ressemble beaucoup à ce que vous essayez d'atteindre.
Bonne chance.
Fait que l'utilisateur dispose des autorisations dans le CRM?
l'identification de l'utilisateur que je suis entrée dans clientCredentials.Nom d'utilisateur.Pseudonyme du compte d'administrateur de CRM
D'idées, alors j'ai peur
Merci James, votre réponse m'a aidé à la moitié du chemin 🙂
OriginalL'auteur James Wood
J'ai enfin compris 🙂
Me manquait le "/" organisation, sens de la organizationUri devrait être:
J'ai pensé à elle quand j'ai utilisé ce code:
Et vu le endpoins que l'organisation ont pour inclure l' "/organisation" dans l'Uri..
OriginalL'auteur Greg Oks