active-directory – 使用委派模拟或在Kerberos上多跳一次?完全迷失了

前端之家收集整理的这篇文章主要介绍了active-directory – 使用委派模拟或在Kerberos上多跳一次?完全迷失了前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题是如何处理安全性和正确实现模拟,这些模拟将从客户端计算机上运行并正确验证我的IIS服务器,该服务器传递仍然有效的模拟票证以及LDAP请求.

我的系统是在我的公司内部网上运行的独立服务器,它托管域控制器,LDAP服务器等,并使用Kerberos协议.

>系统信息:在Windows 7 x64上使用Windows Auth和Impersonate的IIS7
>网络信息:IIS 6,LDAP,Kerberos

这是我的VB.NET方法.

  1. Protected FirstName,LastName,EMail As String
  2. Protected Sub Lookup(ByVal UserName As String)
  3. UserName = Trim(UserName)
  4. UserName = Replace(UserName,"\","/")
  5. UserName = Right(UserName,Len(UserName) - InStr(1,UserName,"/"))
  6.  
  7. Using (Hosting.HostingEnvironment.Impersonate) 'ADDED
  8. Dim directoryEntry As New DirectoryEntry("LDAP://dl/DC=dl,DC=net")
  9. 'directoryEntry.AuthenticationType = AuthenticationTypes.Delegation 'REMOVED
  10.  
  11. Dim ds As New DirectorySearcher(directoryEntry)
  12. Dim r As SearchResult
  13. Try
  14. ds.PropertiesToLoad.Add("givenName") 'First Name
  15. ds.PropertiesToLoad.Add("sn") 'Last Name
  16. ds.PropertiesToLoad.Add("mail") 'Email
  17.  
  18. ds.Filter = "(&(objectCategory=person)(objectClass=user)(sAMAccountName=" & UserName & "))"
  19. r = ds.FindOne 'Query LDAP; find record with UserName.
  20.  
  21. 'Populates all the variables retrieved from LDAP.
  22. FirstName = If(r.Properties.Contains("givenName"),Trim(r.Properties("givenName").Item(0)),"")
  23. LastName = If(r.Properties.Contains("sn"),Trim(r.Properties("sn").Item(0)),"")
  24. If IsNothing(r.Properties.Contains("mail")) Then
  25. EMail = If(r.Properties.Contains("userPrincipalName"),Trim(r.Properties("userPrincipalName").Item(0)),"")
  26. Else
  27. EMail = If(r.Properties.Contains("mail"),Trim(r.Properties("mail").Item(0)),"")
  28. End If
  29. EMail = EMail.ToLower
  30. Catch ex As Exception
  31. 'Error Logging to Database Here
  32. End Try
  33. End Using
  34. End Sub

请提出任何必要的问题,以获取帮助我所需的信息.我已经研究了几个星期了,似乎模仿有如此疯狂的变量,我很容易迷失.我只是无法弄清楚如何在我的代码中实现这个…我仍然是.NET的新手:(

您不需要为此配置AuthenticationType.但是,您需要确保允许托管上述代码的服务帐户(或网络服务的计算机帐户)委派给您环境中所有DC上的LDAP服务.

猜你在找的Windows相关文章