Laden...

Wie kann ich einen Termin in Exchange Online eintragen?

Letzter Beitrag vor 7 Jahren 8 Posts 2.568 Views
Wie kann ich einen Termin in Exchange Online eintragen?

Hallo zusammen,

ich habe seither über mein Programm einen "Termin" in den Mailbox Kalender eintragen können, dies habe ich über:


ExchangeService service = new ExchangeService();
service.AutodiscoverUrl(exchange_mailbox, RedirectionUrlValidationCallback);
            Appointment meeting = new Appointment(service);


 meeting.Subject = projektnummer_aus_form1 + "--" + aktuelle_benutzer;
            meeting.Body = "Grobveranschlagte Arbeitszeit für das Projekt >><b>"+projektnummer_aus_form1+"</b><< Seitens der Entwicklung/Konstruktion.<br><br>" + 
                           "Diese Zeit kann jedoch variieren aufgrund sämtlicher Einflüsse wie (Fehlprojektierungen, Wartezeiten, Urlaubszeiten, Krankheitszeiten etc.)";
            //Zeit einstellen
            meeting.IsAllDayEvent = true;
            meeting.Start = startzeit;
            meeting.End = endzeit;
 //Farbe Kategorie einstellen
            meeting.Categories.Add(aktuelle_benutzer);

            //Erinnerung einstellen
            meeting.IsReminderSet = false;
            //meeting.ReminderMinutesBeforeStart = 60;

            // Send the meeting request
            meeting.Save(new FolderId(WellKnownFolderName.Calendar, exchange_mailbox));






 private static bool RedirectionUrlValidationCallback(string redirectionUrl)
        {
            // The default for the validation callback is to reject the URL.
            bool result = false;

            Uri redirectionUri = new Uri(redirectionUrl);

            // Validate the contents of the redirection URL. In this simple validation
            // callback, the redirection URL is considered valid if it is using HTTPS
            // to encrypt the authentication credentials. 
            if (redirectionUri.Scheme == "https")
            {
                result = true;
            }
            return result;
        }

realisiert, hat auch wunderbar funktioniert.

Unsere IT hat aber nun auf Exchange Online umgestellt,
davor war Exchange OnPromise.
Nun bekomme ich dauernd den Fehler, dass AutodiscoverUrl nicht lokalisiert werden kann.
Nach einem Nachfragen in der IT heißt es, dass das nicht mehr geht.

Nach vielem Googeln habe ich auch nichts passendes gefunden.

Weiß zufällig einer von euch etwas, wie ich weiterhin die "Termine" in den Cloudkalender bekomme?

Danke im Voraus.

Gruß Frank

Hinweis von Abt vor 7 Jahren

Thema passt nicht in den Snippet-Bereich, daher in Office verschoben.

Hi,

der Konstruktor kennt i.d.R. noch eine ASMX-Variante - darauf wirst du dann umsteigen müssen. Siehe https://social.technet.microsoft.com/Forums/ie/en-US/29c2d40e-3958-4a84-a9f1-46c078ac5e77/exchange-365-online-and-web-service-ews?forum=onlineservicesexchange

LG

Autodiscover funktioniert nur, wenn es auch von der IT aktiviert und "redirected" wird. Machbar, aber eben in der Hand der IT.

Man kann aber problemlos die URL manuell in das Property ExchangeServiceUrl übergeben!*Bei der IT erfragen *In OWA nachschauen *Auf gut Glück versuchen: https://outlook.office365.com/EWS/Exchange.asmx

Hallo zusammen,

ok super danke, das mit dem
https://outlook.office365.com/EWS/Exchange.asmx
funktioniert,
nun steh ich vor einem neuen Problem und zwar bei der Anmeldung.

ExchangeCredentials ECcredentials = new WebCredentials("username", "Passwort");

Der Username ist keine Problem, aber das Passwort.
Ich will nicht statisch mein Passwort und mein Nutzer verwenden, sondern dass der
jeweilige User sich anmeldet.
Kann man das Windowspasswort übergeben (nur übergeben, nicht speichern sonst irgendwas) ohne dass der User sich jedesmal manuell anmelden muss?

P.S.: habe

service.UseDefaultCredentials = true;

probiert geht aber nicht, da der Username nicht passt
ist bei uns name@firma.de

Hi,

du solltest dir schon mal die Doku anschauen...

Dann würdest du sofort sehen, dass man

service.UseDefaultCredentials = true;

nutzen kann.

LG

Huhu,

mh dann hab ich was überlesen,
also bin ich auf dem richtigen Weg?

Bin halt noch nicht sooo erfahren in vielen Funktionen etc. deshalb vlt auch die "noobigen" Fragen.

Hi,

sorry - da habe ich nicht genau nachgedacht.

NTLM (das, was du aktuell versuchst) wird gegen Office365 so nichts helfen, da das nur die OnPremise-Server anbieten.

Gemäß https://blogs.msdn.microsoft.com/webdav_101/2015/05/11/best-practices-ews-authentication-and-access-issues/ wirst du (wenn du's vollautomatisiert haben möchtest)
OAuth verwenden müssen (ist entsprechend verlinkt im Artikel).

LG

hab mich grad ein wenig eingelesen,
das sieht sehr kompliziert aus, da werde ich noch eine Weile benötigen.

Gruß Frank