.net - Call Web Service Using Client Certificates / Mutual Authentication?
Mar 23, 2012
I'm building a web service client using vb .net. The web service is secured with ssl, basic authentication and also requires client certificates. So I created a web reference in Visual Studio and provided the credentials:
Dim cred As New System.Net.NetworkCredential("usr", "passwd")
Dim proxy As New SimpleFromLocal.simple
proxy.Credentials = cred
Console.WriteLine(proxy.helloWorld())
This works as expected, as long as I turn off mutual authentication on the server side.I added a client certificate like this:
Dim cert As X509Certificate = X509Certificate.CreateFromCertFile(certFile)proxy.ClientCertificates.Add(cert)
The certificate is loaded, but the web service call fails. I could post the exception, but it is in german, which is an issue on its own. It basically says: Authentication failed, because the remote site closed the connection.I tried debugging the ssl handshake on the server side and it looks like the client certificate is not transmitted.So what am I missing here? Is it required to install the client certificate on the local machine?Edit: The error thrown:
I am implementing a VB.NET desktop application which consumes a web service.
The web service implemented in Java and I currently using Tomcat on my localhost to host the web service.
The web service requires secure communication with the client and so I have followed instructions that outlined how to use Java's keytool.exe to create two .jks keystores (one for the client and one for the server) and then create two .cer certificates (one for the client and one for the server)
I have placed the keystores and certificates generate into the directory where the web service is expecting them (according to the instructions)
I have installed the certificates into TrustedPeople and have attempted to use the certificate by setting the ClientCredentials.ClientCertificates property like this:
I keep getting the following error message when I try to call any method:
An error was discovered processing the <wsse:Security> header
My problem is that I don't know how to use this in the VB.NET client application that is consuming the web service. I could be doing this completely wrong.
I'm looking for guidence on using digital certificates to manage website user authenication and access. i am using a website that has this and what happens is this... the company issued me a personal certificate, that i installed on my local machine. When i connect to the website it checks my local cert store for a cert issued by them and if none is found, no entry, if multiple are found, then a box displays to allow you to pick which one to use.
I had a problem getting a VB.NET web service client to receive the response object from a Java web service.In the process of posting this question someone from another department volunteered some code written for a similar situation.I couldn't find this anywhere on the net so I'm completing my question to help others out.[code]The web service is Apache CXF with some Spring elements mixed in.
I need to call a web service from .Net and the web service is authenticted through Base64 authentication.I tried with Web service proxy and it is failed.
I inherited a working WCF Web Service with one major flaw - the WCF Service consumes memory and does not release unless the service is restarted. After a half a day of requests hitting the web service, the memory on the server hosting the service climbs to close to 2 gig and is dead in the water.
I'd like to be able to release memory after the web service has received its response but cannot figure out how (WCF is still new to me). [code]...
This emailing code wont seem to work in my program. I get an exception "The SMTP server requires a secure connection or the client was not authenticated. The server response was 5.5.1 authentication required."
Imports System.Net.Mail Public Class emailStudent Private Sub sendEmailButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sendEmailButton.Click SendMail()
i have a WPF application that uses a service reference to a web service.Now i have a GUI component that tracks the progress of this...But i seem to have some sort of bug here, it only occurs on some machines and not often..I start a call with MethodNameAsync and display the progress bar until the matching Completed event occurs.
some times i call 3 different async methods in a row but only the two of them get their Completed event raised so the GUI will be locked and the application has to be restarted.After being totally frustrated a few weeks i found the event AppDomain.CurrentDomain.FirstChanceException, so i hooked up to it and started logging all FirstChanceExceptions..
[Code]...
Fix this temporary by not using async methods and instead using a thread that will call them one by one.. now this is not a elegant solution, i should be able to use the async methods...
I have some clients calling my asmx service and I figure out to change my asmx to a Wcf service.How can my asmx clients call to my Wcf service without modify the client application?Maybe just a few changes in the config file...I can't expect than they compile their applications.
Here's the situation. I'm a Java developer. Another developer in our company wrote a web service for our clients. They wrote the service in Java. They also wrote a demo for creating a client to consume the web service in Java and it works just fine. I've been tasked with creating a web services client in VB.NET to do the same thing. It hasn't been going smoothly. The problem is that the web service requires that you send the username and password in the SOAP header and I can't figure out how to do that in Vb.NET. I looked at the following pages:
I have a solution in VS 2010: a WCF Service Library project ("NotifyService") and two Windows Forms projects, one for a server ("NotifyServer")and one for a client ("NotifyClient"). My goal is to have a duplex WCF service that will notify any number of connected clients when the server pushes out a notification. The clients do not need to communicate to the server except to subscribe and unsubscribe from the server's updates. However I seem to be running into problems nailing down the InstanceContext.
Since I'm setting everything up through code, there are no app.config files. The problem I'm having is that my Subscribe method is never called. When debugging, I get an error after stepping through that line (not an exception) that says "Unable to automatically step into the server. The debugger failed to stop in the server process." When I go back to my server form and click the button designed to raise an event on the callback clients, it steps into the NotifyService class but the _callbacks list is empty, meaning the Subscribe method either never ran, or it never ran on that instance.
I have fought with this for almost a week. This is nearly an identical copy, at least on the service-side, to what was described here, and I've compiled that and it works.
I have written a VB.NET windows service application. I installed it in my system using the Installutil.exe. But this is not available in the client's system because the .NET is not installed in that system.Is there any way to install the .NET windows service application without the Installutil ?
I'm trying to build a multithreaded SMPP client with VS2008 and I'm getting bogged down in threading. Basically my main parent thread will interact with the windows service scheduler, get registry settings, and get a list of SMPP servers to connect to. Then it will launch a thread for each SMPP connection, which will need to keep it's TCP socket open to receive messages with, so the thread must remain running even if there aren't any events happening (no messages to receive)... but I can't seem to get it figured out.
[Code]...
The Start sub in the oChannel object does run, but once that sub is finished running the thread ends. In the Start sub, it calls other code that initiates a connection to the remote SMPP server, but that code asynchronously waits for an event to be raised regarding the connection status. Once the sub finishes, the async connection being attempted doesn't seem to be able to pin the thread down.
How can i call a jquery method from vb sub routine?My code is when it returns false, the div which contains an alert message will show. Her'es my code, but its not working:
If res = Nothing Then Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "PopupMessage", "$('.styleError').toggle('5000');", True) End IF
I need to dynamically call web service! For this I made simple web service Service1.asmx
Then I created the proxy class for the Service1 Web Service, I use the WSDL.exe utility and following command at the command prompt: wsdl /language:VB /out:myclass.vb http://localhost:3245/Service1.asmx?WSDL
This command create class myclass.vb. That class I include in my Windows Application project, but when I do this I get lot of errors.
This is the how created class look like:
Imports System Imports System.ComponentModel Imports System.Diagnostics Imports System.Web.Services
I need to query a web service that basic authentication, putting the username and password in the request header. My client is written in VB.NET Visual Basic Express Edition 2010. I've added the web service to the Service References. It has auto-generated the appropriate classes for me. [code]...
I need to return an error message to the client, if they have entered invalid data when calling my web service. So if my code is: [code]Is there a way to display a more user friendly error message (such as a message box or just the words "Invalid Order ID")?
I have a console app that is supposed to async call a web service...i don't get any errors but the completed handler doesn't seem to complete correctly. I have a subroutine with a loop that is supposed to fire off say 6 seperate calls to another routine that calls the service. The completed event handler routine puts data into the database..If i put a thread.sleep under the call to the routine calling the web service. The completed event handler fires but only one record is put in the database instead of the hundreds expected and only that one webservice call appears to fire.I should mention that this works as expected when calling the sync method of the web service within a console app and the asyc calls work as expected from a windows forms app. I just need it to work async within a console app..
I'm working in VB.Net and I'm trying to make a piece of code more generic.In fact, there's a big Select Case statement that build a ProxyServer based on a value passed in parameter (a string).
Select Case _strNteraHL7 Case Constantes.NomPRPMIN306010 strUrl = ObtenirUrl("ProviderDetailsQuery", _strVersion, _strEnvir, True, _blnSimulCAIS, _blnSimulPDS, _blnSimulPDSSIIR, _blnSimulPDSInteg)
[code]....
or something similar, so I can remove all those big switch cases, that repeat the same thing 30 times.objWsHL7 being an object or type "object" at compiling.Again, in another switch case statement,
objMsgHL7Out = _objWsHL7.ProviderDetailsQuery(_objMsgIn) objMsgHL7Out is a System.ServiceModel.Channels.Message _objMsgIn is a System.ServiceModel.Channels.Message _objWsHL7 is an Object
I have a asp.net web application with jquery controls. I have a datagrid that will display data from a database table and created a WCF Service to access the db and return the data. I want to be able to call the WCF service from this application which is on a different server and have the xml data returned, converted to json format to be used in the datagrid which is a jquery widget. I have tested the web service and it works fine. Should I call the web service from the javascript function within the xml or create a .net method behind that calls the service and then does the conversion? From these how would I get started?