【发布时间】:2013-04-01 13:14:50
【问题描述】:
全部--
我能够检索 FullName 值 我正在尝试从 Active Directory 中检索电子邮件地址,但在使用 Windows 身份验证的 ASP.Net Web 表单项目中使用以下代码:
Dim wi As System.Security.Principal.WindowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent()
Dim a As String() = wi.Name.Split(New Char() {"\"c}) '' Context.User.Identity.Name.Split('\')
Dim ADEntry As System.DirectoryServices.DirectoryEntry = New System.DirectoryServices.DirectoryEntry(Convert.ToString("WinNT://" + a(0) + "/" + a(1)))
Dim Name As String = ADEntry.Properties("FullName").Value.ToString()
Dim Email As String = ADEntry.Properties("mail").Value.ToString()
当我到达尝试检索电子邮件地址的代码行时,我收到“对象引用未设置为对象实例”。错误。我曾尝试使用电子邮件地址、电子邮件。我认为问题在于我只是使用了错误的关键字。我能够检索 FullName 值。
【问题讨论】:
-
您是否获得了有效的全名?你为什么要通过通用 ADEntry 而不是 Principals 查询?在此处查看示例:stackoverflow.com/a/1609417/559144