2008-10-09 11 views
1

Est-ce que quelqu'un a utilisé des délégués avec des services Web exchnage? J'aimerais qu'un utilisateur puisse contrôler les calendriers d'autres utilisateurs dans Exchange. Je trouve que ce problème est un peu compliqué et j'aimerais voir comment les autres ont réussi à le faire fonctionner correctement.Utilisation de délégués avec les services Web Exchange

Répondre

3

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

J'ai utilisé les recommandations de this article sur les comptes de compte et de ressource de délégué. (Les comptes de ressources sont complexes 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 délégué sur le serveur, j'ai configuré ExchangeServerBinding à l'aide des informations d'identification de le compte 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 Microsofts préparé l'image de serveur virtuel pour le test)

Ensuite, lorsque vous accédez à la boîte aux lettres, je mis en place une demande de FindItemType et utiliser l'adresse smtp du compte je veux 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. Configuration d'un compte avec accès délégué sur le serveur Exchange, cela peut être fait via owa ou avec un script Shell échange
  2. Utilisez le compte avec l'accès des délégués sur l'objet ExchangeServiceBinding
  3. compte cible d'accès à l'aide d'un FindItemType avec le compte cible smtp-addres comme EmailAddressType

Cordialement Jesper Hauge

Questions connexes