I would like to know what is the possibilities to programmatically change data on Exchange Server?
with Exchange Web Service (EWS) can I (change means add/edit/delete):
change data on Exchange Server for other users?
change Global Address List?
if not, how I can do that programmatically?
we have a system that we need to make it communicate with Exchange Server to do different tasks, related to calendar, email, GAL
what is the best practice and approach I should think about?
cheers
I dont't know what about GAL, but surely You can manage users calendars(adding meeting,s adding taksks, ...) and emails(reading, sending etc.).
To manage other user accounts You have to enable impersonation.
Some time ago I wrote two posts on my blog how to impersonate Exchange Service Binding and how to add an appointment to any users calendar in Exchange. I won't paste the code here because it makes no sense, just here You have links if You're interested:
Impersonation
Creating appointment
But now it's easier way to achieve the same results as above, but with less lines of code thanks to Exchange Web Services Managed API 1.1 SDK. So, if You want to enable communication with excahnge You should read more about this API and see if it suits You and Your demands.
Related
I have a web app (rest API) on azure, and I have a B2C setup that is securing it, requiring you to be signed in to access the API. This is good, as i wanted the API to be restricted to members. Basically, the entire web app requires authentication, and will prompt you for a sign in.
Heres the problem - my app has users (who have accounts) and clients (who do not have accounts). These clients might receive an email about a new appointment being set up with one of the users - this email should have one or more links/buttons (ie, a button to Confirm appointment, one to Decline, and one to request a reschdeule) and upon clicking this link I would like to update a field in my database via the rest api, so the USER knows the CLIENT's response. The trouble is, since the client wont have an account, I have no idea how I can give them a link they would be allowed to go to, and have the update happen.
I have tried to do a bunch of research - ive looked into AD external identities with a one time passcode - but i cant seem to find any info on how i would actually get this to work for my purposes.
Does anyone know how I might implement this in azure? Is there a way to call to azure form c# to generate a one time authentication that i can encode into a URL or something?
Any thoughts would be greatly appreciated.
Thanks!
You could do an anonymous authentication by using a magic link. The users account won’t even need to live in the directory. The link can be short lived, and potentially one time use. We call it id_token_hint or a magic link.
Sample here
https://github.com/azure-ad-b2c/samples/tree/master/policies/invite
And reference here
https://learn.microsoft.com/en-us/azure/active-directory-b2c/id-token-hint
I've got to write some tool that will track meetings among the whole company. To do this I need to have the information on all appointments from all folders of all users. EWS API seems to only work with one user at the time and requires user credentials (did I miss something important here? ). Is there other options or a strategies to implement this approach?
P.S. I also found that there is OAuth that probably can help me with this task, but I didn't find any information whether it works the way I need it with Exchange Server 2013
I don't even know what to look for. I tried using the directory API to accomplish this however I was not lucky. I have a service account key created so that my console app (which will become a azure web job) doesn't have to approve any permissions...
Can someone help with direction? I just don't even know where to start...
Depends where you want to start. There are probably a few libraries that will emulate the IMAP or POP3 protocols for you.
However you can also code the following protocols fairly easily.
https://code.msdn.microsoft.com/windowsdesktop/Simple-IMAP-CLIENT-b249d2e6
This example should get you started for IMAP, and POP3 will follow similar protocols.
EDIT:
I misunderstood the question. I was looking at gmail groups and I think I understand what you're trying to do. Retrieving emails from a group isnt really possible as the emails aren't shared. All a gmail group is, is a distribution list which sends emails to all the attendees in the list.
What i would do now is create a new Gmail account, and add it to the work group and have it receive all the emails. Use the Google SDK or the self created protocol to retrieve all the messages manually from the message box.
I am looking into an alternative solution to my jQuery and Ajax alerting feature in my MVC4 app. I have stumbled across SignalR which looks like it can solve my solution but where I hear you can broadcast to a certain client and not all, I cannot seem to find an example.
Basically all I want to know is:
On set up can the clientID be the applications UserID on login?
Are you able to broadcast to specific roles and/or a list of userID's
Are there are any examples that can help demonstrate the above?
Thanks in advance
With SignalR you can manage your own user identities. SignalR represents each user with a ConnectionId but it is ultimately up to the dev to map that to an existing user profile.
Yes, you are able to broadcast to groups or specific clients. You can add clients to groups and then send single messages to multiple people simultaneously or you can send to a specific client.
As noted in the comment JabbR is an excelent example. Also for a quick start on getting introduced to SignalR check out the Quick Start Hubs page. Lastly SignalR is open source so check out the source and the wiki.
I'm working on a subscription data delivery webservice using C# and WCF. Customers will sign-up to use the service at different usage levels for a monthly fee. The project requirements call for the service to be accessible from a web app hosted on the same server, from a desktop app and Windows service distributed to customers and from a WordPress plugin. In the future, support may be added for other CMS systems and mobile (Apple/Android) apps.
The security requirements include a standard user ID and password authentication for each call to the service to verify subscription status and type and to track user activity. That's easy enough to do but there's more and that's what I'm looking for advice on.
First of all, there's the need to track IP addresses and use this information to control access. One part of this is to restrict the number of different IP addresses the service can be called from within a specific time period per ID and subscription type. The second part is to prevent access to the service from certain countries entirely. I've read some other answers here about how to implement IP address detection/tracking in general but I am more concerned about potential difficulties associated with this that others have encountered. What should we watch out for here?
The second major security requirement is to restrict access to the service to our provided desktop/service applications or from authorized domains using our CMS plugins. I'm not sure how this can be implemented other than using some sort of authentication token which of course could be easily hacked. Perhaps in combination with the login and IP address requirements this will be enough though. Are there any alternative methods that might be a better approach to take?