Guten Tag Liebe Community,
folgender Stand:
Ich habe 2 Server und 1 Client System über VMWARE erstellt.
Server1: DomainController\ActiveDirectory
Server2: Exchange Server\IIS
Server3: Client
Auf dem Client befindet sich Outlook 2010 das mit dem Exchange Server 2016 verbunden ist. Im Outlook befindet sich ein VSTO Addin das erstellte Termine mit einer Markierung versetzt um Sie so einheitlich zu Identifizieren. -> Klappt
Nun zu meinem Problem... Es soll möglich sein via einer Webanwendung(die auf dem IIS gehostet wird) die erstellten Termine aus dem Outlook Addin auslesen zu können.
Dazu benutze ich den Exchange WebService:
If ConfigurationManager.AppSettings("ExchangeDefaultCredentials") Then
service = New ExchangeService() With {
.UseDefaultCredentials = True,
.Url = New Uri(ConfigurationManager.ConnectionStrings("ExchangeUri").ConnectionString)}
'service.AutodiscoverUrl(ConfigurationManager.AppSettings("ExchangeUser"), RedirectionUrlValidationCallback)
Else
service = New ExchangeService() With {
.UseDefaultCredentials = False,
.Credentials = New WebCredentials(ConfigurationManager.AppSettings("ExchangeUser"), ConfigurationManager.AppSettings("ExchangePW")),
.Url = New Uri(ConfigurationManager.ConnectionStrings("ExchangeUri").ConnectionString)}
End If
Dim startDate As DateTime = DateTime.Today
Dim endDate As DateTime = startDate.AddDays(18)
Dim calendar As CalendarFolder = CalendarFolder.Bind(service, WellKnownFolderName.Calendar, New PropertySet())
Dim cView As New CalendarView(startDate, endDate, 50)
cView.PropertySet = New PropertySet(AppointmentSchema.Subject, AppointmentSchema.Start, AppointmentSchema.End, AppointmentSchema.Id)
Dim appointments As FindItemsResults(Of Appointment) = calendar.FindAppointments(cView)
For Each appointment As Appointment In appointments
apmt = Appointment.Bind(service, appointment.Id, New PropertySet(BasePropertySet.FirstClassProperties) With {.RequestedBodyType = BodyType.Text})
If apmt.Categories.Contains("SILO") Then
lstApmt.Add(apmt)
End If
Next
Bei der ersten Bedingung wird geprüft ob es sich um einen Zugriff mit "Use Default Credentials" handelt (diese Boolean Wert wird in der Webconfig eingestellt).
Ist Use DefaultCredentials = false übergebe ich dem Exchange Server die Mailadresse + das Passwort direkt. -> klappt
Wie stelle ich es aber nun an, das wenn die Use-Default Credentials =true sind, das auch die Credentials des aktuellen Benutzers übergeben werden um dann die Informationen aus dem Exchange zu lesen?
Hänge seit einigen Tagen an dem Problem und weiß nicht ob ich noch nötige Schritte im Exchange Server/IIS oder im Code unternehmen muss.
IIS Authentifizierung:
EWS: