Question

Quelqu'un a-t-il utilisé des délégués disposant de services Web d'échange? Je souhaite qu'un utilisateur puisse contrôler les calendriers d'autres utilisateurs dans Exchange. Je trouve ce problème un peu délicat et j'aimerais voir comment d'autres ont pu le faire fonctionner correctement.

Était-ce utile?

La solution

Je commence tout juste à commencer ici, mais j'ai réussi à accéder aux calendriers de ressources via un compte de délégué.

J'ai utilisé les recommandations de cet article sur le compte de délégué et comptes de ressources. (Les comptes de ressources sont délicats car ils sont désactivés dans l'AD et vous devez utiliser un compte délégué pour y accéder.)

Après avoir configuré le compte de délégué sur le serveur, j'ai configuré ExchangeServerBinding à l'aide des informations d'identification du compte de délégué:

ExchangeServiceBinding binding = new ExchangeServiceBinding();
binding.Url = @"https://dc1.litwareinc.com/ews/exchange.asmx";
// Setup binding with username and password of the delegate account
binding.Credentials = 
    new NetworkCredential(delegateuserName, delegatepassword, "litwareinc.com");

( j'utilise une image de serveur virtuel préparée par Microsofts pour le test )

Ensuite, lors de l'accès à la boîte aux lettres, je configure une requête FindItemType et utilise l'adresse smtp du compte auquel je souhaite accéder:

// Prepare request
var findItemRequest = new FindItemType();
// Setup the mailbox using the smtp address of the account wanted
var mailbox = new EmailAddressType {EmailAddress = mailboxId};
findItemRequest.ParentFolderIds = 
    new[] {new DistinguishedFolderIdType {Mailbox = mailbox}};
((DistinguishedFolderIdType) findItemRequest.ParentFolderIds[0]).Id = 
    DistinguishedFolderIdNameType.calendar;
findItemRequest.Traversal = ItemQueryTraversalType.Shallow;

// Add ItemResponseShapeType and Calendarview to request here ...

// The create a FindItemResponseType using the binding and the request
var response = binding.FindItem(findItemRequest);

Donc en bref:

  1. Configurez un compte avec un accès délégué sur le serveur Exchange. Cette opération peut être effectuée via owa ou avec un script Exchange Shell
  2. Utiliser le compte avec accès délégué sur l'objet ExchangeServiceBinding
  3. Accédez au compte cible à l'aide de FindItemType avec le compte cible smtp-addres comme EmailAddressType

Cordialement Jesper Hauge

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top