我正在编写一些在 Exchange 服务器上执行管理任务的代码,并且我需要设置公用文件夹的权限,为自己(即连接到 Exchange 的邮箱/用户)授予给定文件夹的权限。
其代码如下:
UserId userId = ???;
myFolder.Permissions.Add(userId, FolderPermissionLevel.Owner);
myFolder.Update();
这段代码可以正常工作(并且我有权限授予自己权限没有问题,因为我在公共(public)文件夹管理 AD 组中),但问题是我没有 UserId
代表当前用户的对象。我什至没有 primarySmtpAddress
,这是获取 UserId
的另一种方法。我所知道的是,我所在的用户拥有邮箱权限 - 它可能是当前的 Windows 用户,也可能只是传递到我的库的NetworkCredential
。
EWS 中有办法获取当前用户,或者至少当前用户的 SMTP 地址吗?我查看了 ExchangeService
类,但找不到任何相关内容。
最佳答案
如果您有 NetworkCredential,则可以绑定(bind)到 AD 并使用 GetObject 获取 IADsUser。从那里您可以获得电子邮件地址。然后你可以使用:
UserIdType 用户 = new UserIdType(); user.PrimarySmtpAddress = "[email protected] ";
设置您的权限集用户 ID:
http://msdn.microsoft.com/en-us/library/bb856574(v=exchg.80).aspx
关于exchangewebservices - 检索当前用户的 UserId 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19956876/