CRM-2011 die Verbindung zur Organisation.svc auf Basis von C#
CRM-2011-setup mit ADFS und HTTPS. Ich bin versucht, eine Verbindung zu der Organisation.svc von benutzerdefinierten web-Seite, die sitzt auf der gleichen IIS-mit CRM 2011, aber sich als eine andere Website mit diesem 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);
}
Es wird eine Fehlermeldung zurückgegeben:
Einem ungesicherten oder falsch gesicherten Schuld wurde von der anderen Partei. Finden Sie die innere FaultException für den Fehlercode und Details.ID3242: Das Sicherheitstoken konnte nicht authentifiziert oder autorisiert.
und in der Ereignisanzeige sehe ich Fehler:
Account For Which Logon Failed:
Security ID: NULL SID
Account Name: admin
Account Domain:
Failure Reason: Unknown user name or bad password.
obwohl ich den richtigen Benutzernamen und Passwort..
und wenn ich versuche, Sie zu ersetzen:
using (serviceProxy = new OrganizationServiceProxy(OrganizationUri, null, clientCredentials, null))
mit:
using (serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealUri, clientCredentials, null))
gibt es:
Objektverweis nicht auf eine Instanz eines Objekts.
weil serviceProxy null ist.
InformationsquelleAutor Greg Oks | 2012-08-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, ich bin gerade erst anfangen, um die Verwendung von ADFS mich, ich würde vorschlagen, dass ein Lesen der Active Directory-und Claims-Basierte Authentifizierung wenn Sie havnt schon.
Auch aus der Suche in Ihrem code, den ich glaube nicht, dass Ihr HomeRealmUri korrekt ist. Anscheinend haben Sie ihm die Adresse des CRM-Discovery-Dienst. Ich denke, Sie sind in Ordnung, es zu verlassen, als null, wenn man nur die einzelnen ADFS-in spielen. Wie beschrieben in in der MSDN hier.
Hätte ich erwartet, dass es mehr wie folgt Aussehen: urn:Verband:contoso
Für den Benutzernamen, ich glaube, Sie brauchen, um die Domäne anzugeben, die Sie in der Regel zu tun haben, in diesem format ein: Anwendername@domain
Vielleicht wollen Sie auch, dies zu betrachten Beispiel seiner einen single sign-on web-Seite, dass die Gespräche, Crm, das klingt wie eine Menge, was Ihr zu erreichen versucht.
Glück.
Nicht, dass Benutzer Berechtigungen im CRM?
die Anmeldeinformationen des Benutzers, ich bin der Eingabe in clientCredentials.Benutzername.Der Benutzername des Administratorkontos von CRM
Die Ideen, dann fürchte ich,
Dank James, deine Antwort hat mir geholfen auf der Hälfte des Weges 🙂
InformationsquelleAutor James Wood
Habe ich endlich kapiert 🙂
Mir fehlte das "/Organisation", D. H. die organizationUri werden sollte:
Ich habe es herausgefunden, als ich diesen code:
Und sah die endpoins, dass die Organisation haben, gehören die "/Organisation" in der Uri..
InformationsquelleAutor Greg Oks