0

我遇到了一个障碍,这与 Google Search Appliance 和 ASP 之间的身份验证有关。通常,当从 Search Appliance 请求安全页面时,Search Appliance 会请求凭据,然后使用这些凭据尝试访问安全结果。如果此尝试成功,该页面将显示在结果列表中。由于 ASP 代表客户与 Search Appliance 联系,因此它需要收集凭据并将其传递给 Search Appliance。我已经尝试了几种不同的记录方法来实现这一点,但它们似乎不起作用。以下是我尝试过的代码:

'Bypass SSL since discovery.gov.mb.ca does not have valid SSL cert (NOT PRODUCTION SAFE)
ServerCertificateValidationCallback = New System.Net.Security.RemoteCertificateValidationCallback(AddressOf customXertificateValidation)

googleUrl = "https://removed.com"

Dim rdr As New XmlTextReader(googleUrl)

Dim resolver As New XmlUrlResolver()

Dim myCred As New System.Net.NetworkCredential("USERNAME", "PASSWORD", Nothing)

Dim credCache As New CredentialCache()

credCache.Add(New Uri(googleUrl), "Basic", myCred)

resolver.Credentials = credCache

rdr.XmlResolver = resolver

doc = New System.Xml.XPath.XPathDocument(rdr)
path = doc.CreateNavigator()

Private Function customXertificateValidation(ByVal sender As Object, ByVal certificate As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal chain As System.Security.Cryptography.X509Certificates.X509Chain, ByVal sslPolicyErrors As Net.Security.SslPolicyErrors) As Boolean

Return True

End Function
4

1 回答 1

0

在这里看看这个项目: GSALib on CodePlex。它是用于 GSA 和 GSA 迷你设备的开源 API。它可以处理来自任何 .NET 应用程序的传递凭据、查询结果等。虽然是用 C# 编写的,但您可以查看代码并了解它们如何处理身份验证例程或使用它来代替您自己的自定义代码,这可以为您节省大量时间。

旁注:我在 VB.NET Web 应用程序中使用过 GSALib dll,过去没有任何问题。

于 2009-07-14T12:19:06.120 回答