Bir web isteği aracılığıyla bir veri dosyası göndermem gereken bir projem var. Karşılıklı kimlik doğrulama olarak da bilinen iki yönlü kimlik doğrulaması kurmamız gerekiyor. Özel bir sertifikaya ihtiyacımız olup olmadığından emin değiliz ancak 3. seviye olması gerektiğini biliyoruz.dotnet içinde ssl kullanılarak iki yönlü kimlik doğrulaması
Bu örnek için örnek kod bulmakta zorlanıyorum. Sertifika bilgilerimizi nereye ekleyeceğimi bilmiyorum. Bu kodla, yanıt akışını okumaya çalıştığımızda Underlying connection is closed
hatası atılır ve ServicePointManager.ServerCertificateValidationCallback
asla çağrılmaz. İşte sahip olduğum şey:
ServicePointManager.ServerCertificateValidationCallback = New Security.RemoteCertificateValidationCallback(AddressOf MyCertValidationCb)
httpReq = CType(System.Net.HttpWebRequest.Create(url), HttpWebRequest)
For Each cert As String In certs
X509cert = X509Certificate2.CreateFromCertFile(cert)
X509cert2 = New X509Certificate2(X509cert)
httpReq.ClientCertificates.Add(X509cert2)
Next
httpReq.Method = "POST" ' Post method
httpReq.ContentType = "text/xml" ' content type
' Wrap the request stream with a text-based writer
writer = New StreamWriter(httpReq.GetRequestStream())
' Write the XML text into the stream
reader = New StreamReader(filename.Name)
ret = reader.ReadToEnd()
reader.Close()
' Send the data to the webserver
writer.WriteLine(ret)
writer.Close()
' Wait for response
Dim httpRsp As System.Net.HttpWebResponse = CType(httpReq.GetResponse(), HttpWebResponse)
sr = New StreamReader(httpRsp.GetResponseStream)
responseText = sr.ReadToEnd
If httpReq IsNot Nothing Then
httpReq.GetRequestStream().Close()
End If
If httpRsp IsNot Nothing Then
httpRsp.GetResponseStream().Close()
End If
Örnek kod içeren blog'lara herhangi bir ipucu veya linki harika olurdu. Teşekkürler.
Eğer SOAP WS-Security kullanılmasını engelleyen belirli bir gereksinimi var mı:
sizin ClientCertificate nasıl ayarlanacağı hakkında aşağıdaki MSDN makale görüşmeler
? .NET ve IIS, yani WCF arasında, bu, paylaşılan bir sertifika kullanılarak SSL aktarımı ve reddi işlemlerini ele alır. TLS'ye ve/veya mesaj şifrelemeye geçmek, bayrakların ayarlanması meselesidir. Öyleyse, 3. Sınıf'a gerek yok, sadece 1 numaralı PKCS12, özel anahtarlı, güvenilir bir zincir köküne gerek yok, işe yarayacaktı. – ssamuel