Les opérations de « GetUserOofSettings », « SetUserOofSettings » et « GetUserAvailability » ne gèrent pas l’emprunt d’identité Exchange sur le schéma d’Exchange Server 2010 SP1


Symptômes


Vous essayez de générer automatiquement du code proxy basé sur le schéma de Microsoft Exchange Server 2010 Service Pack 1 (SP1). Dans ce cas, la ligne suivante est manquante dans le code proxy :
[System.Web.Services.Protocols.SoapHeaderAttribute("ExchangeImpersonation")] 
Par conséquent, les proxy généré automatiquement ne pas prennent en charge Exchange Impersonation.This problème affecte les trois opérations suivantes :
  • GetUserOofSettings
  • SetUserOofSettings
  • GetUserAvailability

Résolution


Pour résoudre ce problème, installez le correctif cumulatif suivant :
2579150 Description du correctif cumulatif 4 pour Exchange Server 2010 Service Pack 1

Solution de contournement


Pour contourner ce problème, utilisez Microsoft Exchange Web Services (EWS) Managed API 1.1 pour modifier les classes générées dans le schéma. Pour ce faire, ajoutez la ligne suivante dans le code proxy :
[System.Web.Services.Protocols.SoapHeaderAttribute("ExchangeImpersonation")] 
Vous trouverez ci-dessous un exemple de l’opération GetUserOofSettings . Code d’origine :
[System.Web.Services.Protocols.SoapHeaderAttribute("ServerVersionInfoValue", Direction = System.Web.Services.Protocols.SoapHeaderDirection.Out)][System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.microsoft.com/exchange/services/2006/messages/GetUserOofSettings", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)][return: System.Xml.Serialization.XmlElementAttribute("GetUserOofSettingsResponse", Namespace = "http://schemas.microsoft.com/exchange/services/2006/messages")]public GetUserOofSettingsResponse GetUserOofSettings([System.Xml.Serialization.XmlElementAttribute(Namespace = "http://schemas.microsoft.com/exchange/services/2006/messages")] GetUserOofSettingsRequest GetUserOofSettingsRequest){    object[] results = this.Invoke("GetUserOofSettings", new object[] {    GetUserOofSettingsRequest});    return ((GetUserOofSettingsResponse)(results[0]));}
Code modifié :
[System.Web.Services.Protocols.SoapHeaderAttribute("ServerVersionInfoValue", Direction = System.Web.Services.Protocols.SoapHeaderDirection.Out)][System.Web.Services.Protocols.SoapHeaderAttribute("ExchangeImpersonation")][System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://schemas.microsoft.com/exchange/services/2006/messages/GetUserOofSettings", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)][return: System.Xml.Serialization.XmlElementAttribute("GetUserOofSettingsResponse", Namespace = "http://schemas.microsoft.com/exchange/services/2006/messages")]public GetUserOofSettingsResponse GetUserOofSettings([System.Xml.Serialization.XmlElementAttribute(Namespace = "http://schemas.microsoft.com/exchange/services/2006/messages")] GetUserOofSettingsRequest GetUserOofSettingsRequest){    object[] results = this.Invoke("GetUserOofSettings", new object[] {    GetUserOofSettingsRequest});    return ((GetUserOofSettingsResponse)(results[0]));}

Statut


Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Informations supplémentaires


Pour plus d’informations sur l’opération de GetUserOofSettings , visitez le site Web Microsoft suivant :Pour plus d’informations sur l’opération de SetUserOofSettings , visitez le site Web Microsoft suivant :Pour plus d’informations sur l’opération de GetUserAvailability , visitez le site Web Microsoft suivant :Pour plus d’informations sur l’emprunt d’identité Exchange, visitez le site Web Microsoft suivant :