Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wie kann ich einen Termin in Exchange Online eintragen?
Edzio
myCSharp.de - Member



Dabei seit:
Beiträge: 68

Themenstarter:

Wie kann ich einen Termin in Exchange Online eintragen?

beantworten | zitieren | melden

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

Moderationshinweis von Abt (19.02.2018 - 21:47:30):

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

private Nachricht | Beiträge des Benutzers
Taipi88
myCSharp.de - Member

Avatar #avatar-3220.jpg


Dabei seit:
Beiträge: 1044
Herkunft: Mainz

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
trib
myCSharp.de - Member



Dabei seit:
Beiträge: 692

beantworten | zitieren | melden

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!
private Nachricht | Beiträge des Benutzers
Edzio
myCSharp.de - Member



Dabei seit:
Beiträge: 68

Themenstarter:

beantworten | zitieren | melden

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 [email protected]
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Edzio am .
private Nachricht | Beiträge des Benutzers
Taipi88
myCSharp.de - Member

Avatar #avatar-3220.jpg


Dabei seit:
Beiträge: 1044
Herkunft: Mainz

beantworten | zitieren | melden

Hi,

du solltest dir schon mal die Doku anschauen...

Dann würdest du sofort sehen, dass man

service.UseDefaultCredentials = true;
nutzen kann.

LG
private Nachricht | Beiträge des Benutzers
Edzio
myCSharp.de - Member



Dabei seit:
Beiträge: 68

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Taipi88
myCSharp.de - Member

Avatar #avatar-3220.jpg


Dabei seit:
Beiträge: 1044
Herkunft: Mainz

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Edzio
myCSharp.de - Member



Dabei seit:
Beiträge: 68

Themenstarter:

beantworten | zitieren | melden

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

Gruß Frank
private Nachricht | Beiträge des Benutzers