Solved

Get trough Authentification in ASP.NET for a Domino WebService

Posted on 2008-10-23
10
763 Views
Last Modified: 2013-11-17
I'm building a webservice in Domino designer that acces a lotus notes database. (we are on Ver. 7)

I want to consume that web service in ASP.net.
Whe i use a get method, i got a "Client found response content type of 'text/html; charset=UTF-8', but expected 'text/xml'."

I guess it's because i got to pass trough the Authentification process because when i go to the ?WSDL page, i got the "Log in to Sametime" page (the same that when i go to to out mail web access).
So i guess that is the 'text/html" response?
 
How could i provide a user/password to the webservice or another workaround?



 
0
Comment
Question by:David Robitaille
  • 6
  • 4
10 Comments
 
LVL 20

Assisted Solution

by:brwwiggins
brwwiggins earned 500 total points
Comment Utility
This article might help but I think you have to have basic authentication

http://interoptips.com/forums/thread/25.aspx

We use session authentication and I never really got it working but I was just playing around.
0
 
LVL 18

Author Comment

by:David Robitaille
Comment Utility
i dont think we use basic authentication, becaute it dont work...
How could i check?
 
0
 
LVL 20

Expert Comment

by:brwwiggins
Comment Utility
in the server document in the address book

this might help as well. Didn't know it existed http://www.ibm.com/developerworks/wikis/display/dominoappdev/Overriding+Session+Authentication+rules
0
 
LVL 18

Author Comment

by:David Robitaille
Comment Utility
OK, i will get my Server admin "Overriding Session Authentication rules" for me.
As another trail, i`m trying to manually log in thoug the form using a technique like this:
http://odetocode.com/Articles/162.aspx
But it s look like I cant build a good "postData" string...
i will keep in touch...
 
0
 
LVL 18

Author Comment

by:David Robitaille
Comment Utility
Well, I got my sysadmin add an rule and he said he restarted the HTTP part of the server, but it still not working. (I mean passing Credential to the service)
Now, I m trying to pass an cookie to the service but it dosen t work.
Does someone got an example working for notes?
I scroll down on the first link you provided me, and saw information that i thought useful, but i still cant get it work...
I need help!
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 
LVL 18

Author Comment

by:David Robitaille
Comment Utility
i thibk i now know why i was missing some reference.
I m using Visual web developer 2008 (express)
When I Add a webreference, I dont get a "reference.vb" file.
is it what i was missing?
Should i make the switch to Visual Studio or there is a way to do it with Visual web developer?
 
0
 
LVL 20

Expert Comment

by:brwwiggins
Comment Utility
I believe the reference.vb proxy class file is only for winforms applications and not relevant on asp.net pages.

I'll see if I can dig up my old project and get it working with the override rule
0
 
LVL 18

Author Comment

by:David Robitaille
Comment Utility
Thanks, it will be very appreciate
0
 
LVL 18

Accepted Solution

by:
David Robitaille earned 0 total points
Comment Utility
I did it!
I found a way to get the authentication cookie and forward it to the webservice!
I use the link i provided + the one brwwiggins provided me in the first place.
I asked my sysadmin to remove the rule so i could confirm it work using session authentication.
Here my code!
 

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
 

        Dim QSWEBService As New WEBService()
 

        'connect to the service the first time

        Dim webRequest As Net.HttpWebRequest

        webRequest = Net.HttpWebRequest.Create(QSWEBService.Url)

        Dim responseReader As System.IO.StreamReader = New System.IO.StreamReader(webRequest.GetResponse().GetResponseStream())

        Dim responseData As String = responseReader.ReadToEnd()

        responseReader.Close()
 

        'have a cookie container ready to receive the forms auth cookie

        Dim cookies As System.Net.CookieContainer = New System.Net.CookieContainer()
 

        'construct the data to post

        Dim postDataByte As Byte()

        Dim userName As String = "myUserName"

        Dim password As String = "MyPassword"

        'enncode the form data string into a byte array 

        postDataByte = System.Text.Encoding.ASCII.GetBytes("username=" & userName & "&password=" & password)
 

        'indicate that you will be posting the data 

        Dim LOGIN_URL As String = "http://www.myurl.com/names.nsf?Login&&RedirectTo=" & QSWEBService.Url

        webRequest = Net.HttpWebRequest.Create(LOGIN_URL)

        webRequest.Method = "POST"

        webRequest.ContentType = "application/x-www-form-urlencoded"

        webRequest.AllowAutoRedirect = False
 

        webRequest.CookieContainer = cookies
 

        'write the form values into the request message

        Dim postStream As System.IO.Stream = webRequest.GetRequestStream()

        postStream.Write(postDataByte, 0, postDataByte.Length)

        ' Close the post

        postStream.Close()
 

        'we don't need the contents of the response, just the cookie it issues
 

        'This code is in case we want to get it (debugging) 

        'responseReader = New System.IO.StreamReader(webRequest.GetResponse().GetResponseStream())

        'responseData = responseReader.ReadToEnd()

        'responseReader.Close()
 

        webRequest.GetResponse().Close()
 

        'now we can send out cookie to the protected WEBService

        QSWEBService.CookieContainer = cookies

        QSWEBService.PreAuthenticate = True

        Dim test As string
 

        test = QSWEBService.GetTest()        

        Label1.Text = test

End Sub

Open in new window

0
 
LVL 20

Expert Comment

by:brwwiggins
Comment Utility
wow, great job !! I will have to keep this for reference.
Thanks for sharing
0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

Suggested Solutions

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
IntroductionWhile developing web applications, a single page might contain many regions and each region might contain many number of controls with the capability to perform  postback. Many times you might need to perform some action on an ASP.NET po…
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now