Est-il possible d'accéder aux dossiers et éléments d'autres comptes Exchange autres que celui de l'utilisateur connecté? Puis-je le faire via l'API managée des services Web Exchange?API Web Services Exchange: accès aux autres éléments
Répondre
Oui, il est possible, mais vous devez connaître le mot de passe de l'autre utilisateur ou saisir d'une certaine manière ces informations d'identification (objet NetworkCredential
). Les lignes typiques de votre code premières pourraient être
ExchangeService myService = new ExchangeService (ExchangeVersion.Exchange2007_SP1);
myService.Credentials = new NetworkCredential ("[email protected]", "[email protected]");
vous pouvez accéder à des services Web si Exchange Server avec le compte qui est autre que l'utilisateur actuel. Voir description de ExchangeService object pour plus d'informations. Si vous êtes un administrateur, vous pouvez rendre l'utilisateur impersonation by SMTP address.
@Alfred Myers & @ user457261: Vous n'avez écrit aucun commentaire. Est-ce que les informations que j'ai écrites sont ce dont vous avez besoin? – Oleg
Merci pour votre réponse, mais je cherchais un moyen sans avoir à connaître tous les mots de passe. Comme utiliser un super-utilisateur qui peut accéder à tous les comptes. – Luke
@Luke: Les dernières phrases de ma réponse décrivent comment faire cela. En tant que "superadmin", vous pouvez usurper l'identité d'un utilisateur par adresse SMTP sans avoir d'informations sur son mot de passe. Regardez http://msdn.microsoft.com/en-us/library/dd633680(EXCHG.80).aspx une fois de plus. – Oleg
Je suggère d'utiliser l'emprunt d'identité au lieu de la connexion pour chaque utilisateur. Via l'usurpation d'identité, vous pouvez usurper l'identité des utilisateurs. Ce n'est pas la même chose comme un accès complet. L'accès complet est le comportement de, l'usurpation d'identité est agir comme.
Un pré usurpation d'identité est que vous avez un nom d'utilisateur et un mot de passe au lieu d'avoir des noms d'utilisateur x et des mots de passe.
Vous pouvez utiliser l'usurpation d'identité comme la façon suivante:
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
service.Credentials = new NetworkCredential(appName, appPassword, emailDomain);
service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, userToImpersonate);
lorsqu'un utilisateur a déléguer l'accès à quelqu'un d'autre, vous pouvez accéder au dossier de l'autre utilisateur. Par exemple: La personne A sera usurpée et pourra accéder à la personne B
Connaître le mot de passe est incorrect et utiliser l'usurpation d'identité (de nos jours) est erroné.
Voici comment vous le faites.
ExchangeService _service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
//CREDENTIALS OF AN ACCOUNT WHICH HAS READ ACCESS TO THE CALENDAR YOU NEED
_service.Credentials = new WebCredentials(username, password);
_service.Url = new Uri(serviceURL);
SearchFilter.SearchFilterCollection searchFilter = new SearchFilter.SearchFilterCollection();
searchFilter.Add(new SearchFilter.IsGreaterThanOrEqualTo(AppointmentSchema.Start, DateTime.Now.AddDays(-1)));
searchFilter.Add(new SearchFilter.IsLessThanOrEqualTo(AppointmentSchema.Start, DateTime.Now.AddDays(2)));
ItemView view = new ItemView(50);
view.PropertySet = new PropertySet(BasePropertySet.IdOnly, AppointmentSchema.Subject, AppointmentSchema.Start, AppointmentSchema.AppointmentType, AppointmentSchema.End);
//THIS NEXT LINE!!!
var calendarSearch = new FolderId(WellKnownFolderName.Calendar, new Mailbox("[email protected]"));
var appointments = _service.FindItems(calendarSearch, searchFilter, view);
C'est une bien meilleure réponse, exactement ce que je cherchais depuis si longtemps – Nacht
- 1. Exchange Web Services API 1.0 Erreur
- 2. Services Web Exchange?
- 3. Services Web Exchange (API gérée) par rapport aux performances WebDav Question
- 4. Accès aux services Web de rapport SQL
- 5. Folder.Bind - "ID est incorrect" - API gérée Exchange Web Services
- 6. Comment puis-je me connecter aux services Web Exchange?
- 7. Services Web Exchange Authentification Kerberos
- 8. Différences entre les services Web Exchange 2003 et les services Web Exchange 2007
- 9. Exchange Web Services, essayez d'utiliser ExchangeImpersonationType
- 10. Services Web Exchange et jeux de propriétés
- 11. Services Web et accès simultané aux bases de données
- 12. Comment puis-je découvrir toutes les boîtes aux lettres d'un serveur Exchange à l'aide des services Web Exchange?
- 13. Accès aux autres fenêtres dans Air
- 14. Accès aux éléments d'un tableau?
- 15. Accès MS Exchange 2007 via le service Web ASP.NET
- 16. Utilisation de délégués avec les services Web Exchange
- 17. Accès boîte aux lettres Exchange supplémentaire en utilisant Microsoft.Office.Interop.Outlook
- 18. Accès aux contacts dans Outlook/Exchange via VSTO
- 19. Reporting Services Accès anonyme aux rapports
- 20. Accès aux éléments DOM en C#
- 21. Recherche de dossiers croisés dans Exchange à l'aide des services Web Exchange
- 22. Services Web Exchange: traitement groupé avec FindItemsResult <Item>
- 23. Modèle d'accès aux services Web
- 24. appel AJAX aux services Web
- 25. accéder aux boutons de vote de propriété étendu par le biais de services Web Exchange
- 26. Microsoft Exchange Server 2007 Gestion des services Web et des boîtes aux lettres - Développement CRM
- 27. Répéteur imbriqué ASP.NET Accès aux éléments
- 28. Accès aux éléments Plist dans un dict
- 29. Accès aux éléments DOM sans ID
- 30. Ruby Accès aux éléments du tableau
Utilisez-vous directement le serveur Web intégré ou l'utilisez-vous via EWS Managed API? –
@Alfred Myers J'utilise EWS Managed API – Luke