exchangewebservices - 检索当前用户的 UserId 对象

标签 exchangewebservices ews-managed-api

我正在编写一些在 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/

相关文章:

c# - 如何更新 Exchange Web Api 中的联系人项目

exchange-server - 使用 EWS 托管 API 为其他用户创建约会?

java - 从Java进行Exchange Web服务身份验证

exchange-server - Exchange Web 服务 (EWS) API "To"别名 header

java - 使用 EWS 客户端只读未读邮件

sharepoint-2010 - 更新约会时时区更改为 UTC

exchangewebservices - 如何使用托管 API 取消订阅 EWS 推送通知

c# - 在 EWS 中使用 StreamingSubscriptionConnection 时自动重新连接

c# - 我们需要检查 Exchange 上的哪些设置以避免抛出 ServiceRequestException?

c# - 使用 EWS 托管 API 验证登录凭据