我正在使用 ASP.Net(使用 VB.Net)应用程序。在本地测试和工作此代码块执行得非常好。
Try
Dim dc As PrincipalContext = New PrincipalContext(ContextType.Domain, "sanuk")
Dim adUser As UserPrincipal = UserPrincipal.FindByIdentity(dc, IdentityType.Name, uId)
Return adUser.EmailAddress
Catch ex As Exception
'Return "User Not Authenticated"
Return ex.StackTrace
End Try
然而,自从将它提升到我们的开发 Web 服务器进行初始测试后,我没有从 AD 获取用户电子邮件地址,而是收到此错误消息。
在 System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) 在 System.DirectoryServices.DirectoryEntry.Bind()
在 System.DirectoryServices.DirectoryEntry.get_AdsObject() 在 System.DirectoryServices.PropertyValueCollection.PopulateList()
在 System.DirectoryServices.PropertyValueCollection.. ctor(DirectoryEntry entry, String propertyName)
at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
at System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInitNoContainer()
at System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit()
at System.DirectoryServices.AccountManagement .PrincipalContext.Initialize()
在 System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx()
在 System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(PrincipalContext 上下文,类型 principalType,Nullable`1 identityType,字符串 identityValue,DateTime refDate)
在 System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithType (PrincipalContext context, Type principalType, IdentityType identityType, String identityValue) at System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, IdentityType identityType, String identityValue) at ChangeControl.HelpersSystem.GetEmail(String& uId) in C:\Work\Simon \ChangeControl\ChangeControl\HelperClasses\HelpersSystem.vb:第 24 行
我环顾四周,这是我想要做的最接近的事情
以前类似但不是相同的问题。 这也 非常相似,与我所拥有的解决方案相同,但不适用于我
我需要帮助的是我需要提供哪些其他变量,因为我也尝试过使用用户名和密码,但这也不起作用并给出了同样的错误消息。
我也试过没有IdentityType
太,但仍然遇到同样的问题。非常感谢任何和所有帮助。