2017-09-13 4 views
0

J'envoie une demande au serveur Web intégré comme ci-dessous:Redéfinition par défaut en-tête User-Agent pour Exchange request

var service = new ExchangeService(exchangeVersion) 
            { 
             KeepAlive = true, 
             Url = new Uri("some autodiscovery url"), 
             Credentials = new NetworkCredential(username, password), 
             UserAgent = "myClient" 
            }; 

var subscription = service.SubscribeToPushNotifications(
            new[] { inboxFolderFoldeID }, 
            new Uri("some post back url"), 
            15, 
            null, 
            EventType.NewMail, 
            EventType.Created, 
            EventType.Deleted, 
            EventType.Modified, 
            EventType.Moved, 
            EventType.Copied); 

Mais, il en résulterait en une demande ayant l'en-tête User-Agent comme myClient (ExchangeServicesClient/15.00.0913.015) où le reste de la chaîne provient de la bibliothèque EWS où elle utilise cette valeur par défaut. Est-il possible de supprimer la partie par défaut de l'en-tête et l'avoir comme myClient?

Edit: Je peux voir que la bibliothèque SAP semble être préfixer simplement la valeur passée dans la demande: https://github.com/OfficeDev/ews-managed-api/blob/master/Core/ExchangeServiceBase.cs

Répondre

0

Vous aurez besoin de recompiler la bibliothèque de GitHub que la portée des variables existantes ne vous permettra pas pour les changer autrement. par exemple, tout ce que vous devez faire est de modifier UserAgent

public string UserAgent 
    { 
     get { return this.userAgent; } 
     set { this.userAgent = value + " (" + ExchangeService.defaultUserAgent + ")"; } 
    } 

et se débarrasser du préfixe alors lorsque vous définissez la propriété sur la classe ExchangeService il ne sera votre valeur personnalisée.

+0

Oui, semble le seul moyen d'y parvenir. – tavier