2

我正在编写一些在 Exchange 服务器上执行管理任务的代码,并且我需要设置公用文件夹的权限,赋予自己(即连接到 Exchange 的邮箱/用户)对给定文件夹的权限。

代码如下:

UserId userId = ???;
myFolder.Permissions.Add(userId, FolderPermissionLevel.Owner);
myFolder.Update();

这段代码可以正常工作(我有权授予自己权限没有问题,因为我在公用文件夹管理 AD 组中),但问题是我没有UserId代表当前用户的对象。我什至没有primarySmtpAddress,这是获得 的另一种方式UserId。我所知道的是,我处于对邮箱具有权限的用户的上下文中——它可能是当前的 Windows 用户,也可能只是NetworkCredential传递给我的库的用户。

EWS 中有没有办法获取当前用户,或者至少是当前用户的 SMTP 地址?我在ExchangeService课堂上看了看,但找不到任何类似的东西。

4

1 回答 1

2

如果您有 NetworkCredential,您可以绑定到 AD 并使用 GetObject 获取 IADsUser。从那里您可以获取电子邮件地址。然后你可以使用:

UserIdType user = new UserIdType(); user.PrimarySmtpAddress = "user3@example.com.com";

设置您的权限集用户 ID:

http://msdn.microsoft.com/en-us/library/bb856574(v=exchg.80).aspx

于 2013-11-14T22:22:52.737 回答