我正在研究大约5年的旧代码,这些代码可以连接到AD,并检查登录用户是否是共享邮箱的一部分。
现有逻辑:
当前代码使用属性“ msExchMailboxSecurityDescriptor
”将所有“ Trustee
”附加到邮箱。然后,根据给定的用户ID检查此“受托人”值,以确定该用户是否有权访问该邮箱。
直到最近,一切正常。我认为Exchange Server安装程序中发生了某些更改,我无法访问或查看这些更改。
我的问题排成一行:
在C#中仍然可以检查用户是否有权访问共享邮箱?
发现:
我已经选中了“ publicDelegates
”和“ nTSecurityDescriptor
”
属性,并且没有列出所有用户。
我知道有一些PowerShell命令可以获取此信息,但这只是本地命令-对我没有用
有关如何破解此问题的任何指示?
答案 0 :(得分:0)
在扩展MAPI(C ++或Delphi)级别上,GAL提供程序公开了PR_EMS_AB_PUBLIC_DELEGATES
和PR_EMS_AB_PUBLIC_DELEGATES_BL
列表,您可以将其作为IMAPITable
打开。您可以在OutlookSpy中查看数据-单击IMAPISession按钮,QueryIdentity,然后转到PR_EMS_AB_PUBLIC_DELEGATES标签。
如果没有原始扩展选项,则可以使用Redemption及其RDOAddressEntry。Delegates
和IsDelegateFor
属性。可以从RDOSession。RDOAddressEntry
属性中检索CurrentUser
。