Autor Beitrag
msalsa83
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 13.08.12 14:53 
Hallo alle zusammen,

ich suche nach Hilfestellungen um eine Verbindung zum Exchange Server 2003 herzustellen um später Termine im öffentlichen Kalender auszulesen und zu verarbeiten.

Vorraussetzungen sind: C# Application soll auf Exchangeserver ohne laufenden Outlook Client zugreifen, Exchangeserver läuft auf einer anderen Maschine, der Benutzer, mit dem ich mich anmelden soll, hat keine Adminrechte, hat aber Zugriff auf den Kalender.

Ich habe schon einiges ausprobiert: WebDav - funktioniert noch nicht, habe einen Beispielcode angepasst und bekomme eine Fehlermeldung: "nicht authorisiert", CDOEX - geht nicht weil Application nicht auf dem selben Rechner läuft wie Exchange.

Momentan kämpfe ich mit Redemption - leider habe ich keine vernünftige Erklährungen dazu gefunden, auf der offiziellen Seite sind Beispiele für VB enthalten, die lassen sich für c# mühsam umstellen aber nicht alle.

Auf jeden Fall habe ich bis jetzt nicht rauslesen können wie man den aller ersten Scritt mit Redemption macht und den ganz einfachen Zugriff auf Exchangeserver realisiert.

Ich wäre sehr dankbar wenn sich jemand meldet der schon mal Code erstellt hatte um mit exchangeserver 2003 zu arbeiten und mir weiterhelfen kann. Währe auch schön wenn jemand weiß wo man eine Anleitung für Redemption in c# findet mit Beschreibung der ersten Schritte.

Viele Grüße
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 13.08.12 15:28 
Exchange hat eine WebServices Schnittstelle(EWS) die du nutzen kannst. Mit dem Stichwort EWS solltest du da einiges zu finden.

Redemption ist für mich eine reine Erweiterung der Outlook Schnittstelle. Das man damit direkt mit Exchange kommunizieren kann wär mir neu.
msalsa83 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 13.08.12 21:12 
Hallo Ralf,

danke für deine Antwort. Allerdings kann man die Schnittstelle für Exchange Server ab Version 2007 nutzen, wenn ich es richtig verstehe, und ich brauche eine Verbindung zum Exchange 2003.

Hast du einen Tipp für die frühere Versionen von Exchange?

Grüße
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 13.08.12 21:56 
Dann ist WebDAV der Weg. Wenn das direkt bei dir nicht will versuch es erst per Outlook Web Access wenn das geht versuch es nochmal direkt per WebDAV.
msalsa83 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 13.08.12 22:47 
Bei mir scheitert es direkt am Anfang schon, bevor ich groß was mit Exchange veranstalte.

Ich benutze die HttpWebRequest Klasse um Reqeust zu erzeugen, übergebe die Url zum Mailserver und rufe getResponse auf - darauf erfolgt eine Fehlermeldung dass die Verbindung zum Remoteserver nicht hergestellt werden kann - und ich komme einfach nicht weiter.

Ich weiß nicht ob diese Vorgehensweise falsch ist - es ist die einzige die ich als Beispielcode gefunden habe für WebDav und die funktioniert nicht.

Beispielcode habe ich von der Seite: blog.mbcharbonneau.c...-an-exchange-server/

Muss man vorher irgendwo noch irgendwas installieren damit es funktioniert??

Dankeschön im Vorraus

Grüße
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 14.08.12 17:20 
Geht bei dir Outlook Web Access? Das wäre der erste Schritt. Wenn das mit dem Account geht den du auch aus deinem Code verwenden willst hast du zumindest Installations- und securitytechnisch alles soweit eingerichtet damit es auch per Code funktionieren kann. Die HttpWebResponse die du auch bei einem Fehler bekommst enthält einen StatusCode den du auswerten solltest. Der sollte dir schon mal den Weg weisen wo das Problem liegen könnte.
msalsa83 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 27.08.12 10:44 
Hallo Ralf,

Danke für den Hinweis, der Webaccess ging nähmlich nicht, nach dem unser Systemadministrator da war rumgestrickt hat, geht es jetzt.

Ich bekomme nach wie vor aber einen Fehler wenn ich versuche mich mit HttpWebRequest mit Exchange zu verbinden.

Ich setzte über
HttpWebRequest request = (HttpWebRequest)System.Net.WebRequest.Create( "<serverdomaine>/Exchange/<Benutzer> ) die Url zum Exchage fest.
mit request.Credentials = new NetworkCredential("<benutzername>", "<passwort>");
übergebe ich die notwendigen Benutzerdaten

und die (HttpWebResponse)request.GetResponse() liefert mir Fehler 411, wenn ich daraufhin die request.ContentLength = 0 setzte - kommt der Fehler 403 zurück "nicht autorisiert". Jetzt habe ich irgendwas über Clientzertifikat gelegesen dass im persönlichen Zertifikatsspeicher des aktuellen Benutzers installiert sein soll.

Aber das Programm soll später als WindowsDienst laufen- ohne dass sich irgendein Benutzer am System anmeldet.

Kann mir da eventuell einer noch weitere Hinweise geben?

Vielen Dank
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 27.08.12 11:19 
Mit dem winhttpcertcfg Tool von Microsoft kannst du Zertifikate auch für die System User installieren.

Wen dir Security egal ist kannst du auch über den ServicePointManager einen Callback für die Zertifikatsprüfung registrieren und im Callback dann einfach behaupten alles wäre OK (nicht empfohlen).