gpt4 book ai didi

c# - 使用 EWS 获取邮箱权限

转载 作者:太空狗 更新时间:2023-10-30 01:17:46 25 4
gpt4 key购买 nike

我正在创建一个需要为每个邮箱获取权限的应用程序,但我似乎无法让它工作。我在 VS 对象浏览器中注意到 Permissions属性(property)在Folder类(class)。

所以我猜我需要得到 MailBox对象,然后获取根/默认文件夹,这样我就可以获得权限。

这是我到目前为止所做的,但是当它调用 Folder rootfolder = Folder.Bind(service, sharedMailboxRootFolderId); 时,我得到以下异常:

"The Client Access Server version does not match the accessed resource's Mailbox Server version."

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
string exchangeServerWebServicesUrl = "https://example.com/EWS/Exchange.asmx";
service.Url = new Uri(exchangeServerWebServicesUrl);

string username = "*********************";
string password = "*********************";

service.UseDefaultCredentials = false;
service.Credentials = new WebCredentials(username, password);

Mailbox sharedMailbox = new Mailbox("shared@example.com");

FolderId sharedMailboxRootFolderId = new FolderId(WellKnownFolderName.Root, sharedMailbox);
Folder rootfolder = Folder.Bind(service, sharedMailboxRootFolderId);

var permissions = rootfolder.Permissions;

我试过传递不同的 ExchangeVersion 枚举值,但它们也不起作用。但是当我尝试获取公共(public)文件夹根文件夹时,传递 ExchangeVersion.Exchange2007_SP1 确实有效。

Folder rootfolder = Folder.Bind(service, WellKnownFolderName.PublicFoldersRoot);

所以问题是如何使用 EWS 获得邮箱权限?

最佳答案

我刚刚找到了 Find out which users have Full Access on a mailbox帖子说

You can't using EWS (or any of the Exchange Mailbox API's) you canonly access the Folder level DACL's what you need to read is theMailbox DACL which can only be either accessed via the ExchangeManagement Shell (Get-MailboxPermissions) or via reading themsexchmailboxsecuritydescriptor from Active Directory.

因此看起来无法使用 EWS 获取邮箱权限。耻辱。

关于c# - 使用 EWS 获取邮箱权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30509909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com