Exchange EWS change permissions of another users calendar - outlook

imagine person A shares his calendar. How would Person B be able to modify the permissions of person A's calendar? I've tried giving OWNER-rights but this doesn't seem to work.
Is this possible without having impersonation rights?
tnx!

This?:
Configuring Exchange Impersonation

Related

Using streaming notifications with delegate access

So far all information that I read about streaming notifications says that you are expected to use impersonation with streaming subscriptions when you want to subscribe to not your mailboxes. This sounds reasonable when you have service application that accesses user mailboxes. In my case I need to subscribe to calendars of room mailboxes.
Based on this answer: Getting notification from Resource calendar in EWS room mailboxes usually have their account disabled and I need to use delegation.
So what is proper way to subscribe and maintain affinity when using delegation? Should I just ignore setting the impersonation header and do everything else as described in How to: Maintain affinity between a group of subscriptions and the Mailbox server in Exchange?
When you creating folder object, pass the other user email address which shared his calendar with you. AS below
folders[0] = new FolderId(WellKnownFolderName.Calendar, new Mailbox("OtherUserEmail"));
And then subscribe.
service.SubscribeToStreamingNotifications
For resource rooms I use impersonation as the preferred access. I know that in general the AD userids for room resources are disabled for login in AD, but my guess is that affects only Windows login. Technically when you impersonate, you don't really login as the room user. You log in as the service account with those credentials, and then indicate with the impersonation id that you want Exchange to pretend it's actually the room making all the requests you are about to make.

Is it possible to be a delegate with create, update and delete own permissions but not read in exchange 2010

I have a service account that I want to be able to access another users calendar through the ews api in such a way that it can create appointments, update appointments they have created and delete appointments they have created but NOT be able to read all items on the users calendar.
This appears to be possible in office 365 (see screenshot) but is it possible with Exchange 2010? If so how?
Sure the image you have posted is just the Folder permissions from Outlook these permission are the same from Exchange 2007 to Office365. The two ways you can set permission pro-grammatically like you have shown is first use one of the Mailbox Access API's like Mapi or EWS and set the Folder permission eg https://msdn.microsoft.com/en-us/library/office/dn641962(v=exchg.150).aspx
Or you can use the Exchange Management Shell and Add-MailboxFolderPermissions https://blogs.technet.microsoft.com/ilvancri/2009/11/24/exchange-2010-and-then-there-is-the-long-awaited-cmdlet-add-mailboxfolderpermission/ this can be a better approach as it just requires delegated admin rights via an RBAC role where setting the folder permission via EWS because it uses a User API would require the account setting those permissions to be the Mailbox owner, have been delegate Full Access rights on the Mailbox (eg add-mailboxpermission) or use Impersonation.

Create Calendar Events Without User Authentication

I'm writing an application that needs to create Calendar events on a user's Outlook Calendar. However, I will not have access to their passwords, and they will most likely not be involved in the workflow to enter them at any point.
Is it possible to create these events with the user being authenticated? If not, are there alternatives?
This is for an on-premise Exchange Server, not Exchange Online.
You can use app impersonation, as long as the admin can add a service account and grant app impersonation. See https://msdn.microsoft.com/en-us/library/office/dd633680(v=exchg.80).aspx for more details.
If the user can use his Windows Login to login to the Exchange Server, you can simply use that - if your application runs on the users machine under his account. EWS-managed-API does that out-of-the-box.
If not, you could create an additional user on the Exchange Server, who creates the appointments on his own account and invites everyone per email.

EWS 2010 Get Calendar items without using Impersonation C#

I have a crawler that used to use an impersonation account to crawl users calendars.
Now, I can not use this impersonation account and need to find a way for the crawler to work.
Is there a way to access user's calendars without using the impersonation account?
If there is a way, would you please explain how to do it and what do I need to do to make it work?
Also, would you point me to a sample code if there is one as a reference?
Thank you,
Rad1
Actually, those users could grant you a Delegate access to their mailboxes.
After that, access their folders from Microsoft.Exchange.WebServices.Data code like this:
rootfolderId = new FolderId(WellKnownFolderName.Contacts,
new Mailbox(delegateEmail));
well the only way other than impersonation is to know the passwords of each user, which is not practical solution.

access exchange 2003 calendars with vs2005+

I'm looking for a way to access Exchange 2003 calendars to add appointments. I'm hoping to use an admin account and impersonate each user to add appointments which i'm pulling from an oracle database. I've seen lots of examples for Exchange 2000 using cdox.dll which are exactly what I'm looking for but not an equivalent for 2003. I have Exchange management tools installed on the development workstation. Would I be able to download cdox.dll and use that?
Examples/links are greatly appreciated. Thanks.
This is the same problem I'm banging my head against....
You can work with calendars using webdav:
http://golemlab.wordpress.com/2009/09/13/php-owa-2003-calendar-fun/
But to impersonate a user you need an admin account with access to his calendar folder.
From what I understand there is no way to set defaults permissions just for calendars that are not created yet.
Also please note that the Calendar folder name is dependant on the user client language (ex: "Calendar" for a user with an english outlook, "Calendario" for italians).
You can set permissions on existing calendars using a lot of different tools:
pfdavadmin is a microsoft endorsed one:
http://www.itexperience.net/2008/10/22/set-calendar-permissions-with-pfdavadmin/
or you can try setperm:
http://www.amset.info/exchange/folderpermissions.asp
there are also some commercial products like folder permission manager:
http://www.symprex.com/products/folder-permissions-manager/
What I'd really wished was the possibility to set defaults calendar permissions on a server level , but this looks really not possible.

Resources