2012-02-08 59 views
1

我必须在C#中编写一个ASP.NET应用程序,该应用程序返回交换mailaccount的mailquota。交换机连接到活动目录,mailquota设置为默认。从Exchange连接到活动目录获取Mailquota

我试图做到这一点,但我不能得到所需的领域,有人一个想法?

DirectoryContext context = new DirectoryContext(DirectoryContextType.Domain, "FQD"); 

DomainControllerCollection dcc = DomainController.FindAll(context); 

DirectorySearcher dSearch = dcc[0].GetDirectorySearcher(); 
dSearch.Filter= string.Format("sAMAccountName={0}",model.UserName); 
dSearch.PropertiesToLoad.Add("displayName"); 
dSearch.PropertiesToLoad.Add("mail"); 
dSearch.PropertiesToLoad.Add("mDBOverHardQuotaLimit"); 
dSearch.PropertiesToLoad.Add("mDBStorageQuota"); 
dSearch.PropertiesToLoad.Add("mDBOverQuotaLimit"); 
dSearch.SizeLimit = 10; 

SearchResult sr = dSearch.FindOne(); 

回答

1

不确定关注。你说数据没有被返回?如果他们使用的是默认值(有mdbUseDefaults或类似的属性),那么您需要返回到用户的邮箱数据库以获取其配额。该链接存储在homeMdb属性中。不过,您只需要Exchange查看权限即可查看这些对象。

+0

我用用户证书连接到AD。 mdbUseDefaults属性传递true,但我不知道如何获得邮件配额值。 – jwillmer 2012-02-13 08:49:27

+1

那么用户的信用将没有足够的权限来读取邮箱数据库的配额。您从他们的账户上的homeMdb获取他们的数据库,然后在该对象上设置相同的配额属性。 – 2012-02-13 21:04:44