Avatar billede hlt Juniormester
20. april 2016 - 09:04 Der er 7 kommentarer

Webservice med soap headers

Hej,
Jeg sidder og skal lave lidt sikkerhed til en webservice. Men jeg er lidt i tvivl om hvorledes det skal laves. Jeg har først sendt et password med i Urlen. Men så læste jeg om soap headers, som jeg så har forsøgt at implementere. Men jeg kan ikke rigtig få det til at virke. Det er lavet i VB.net. Og der er jo selvfølgelig ikke så mange eksempler i vb. Så hvis nogen derude har lavet noget, eller kan se hvad er er forkert i koden, så ville det være perfekt.
Umiddelbart får jeg ingen fejl, men koden returnerer kun "failed" lige meget hvad jeg gør.
På forhånd tak.
------kode-----
<WebService(Namespace:="http://flex/")>
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Public Class updateCar
    Inherits System.Web.Services.WebService



    Public Class AuthenticationHeader
        Inherits SoapHeader

        Public username As String
        Public password As String
    End Class
    Public AuthHead As New AuthenticationHeader()

    <WebMethod(EnableSession:=True), SoapHeader("AuthHead")>
    Public Function updateItem() As String
        Try
            Dim returnStr As String = ""
            If AuthHead.username = "test" Then
                returnStr = "ok"
            Else
                returnStr = "Failed"
            End If

            Return returnStr
        Catch ex As Exception

        End Try
    End Function
End Class
Avatar billede hlt Juniormester
20. april 2016 - 09:38 #1
Fik det til at virke. Det var mit kald fra klienten som fejlede. Men nu spørger jeg så omkring sikkerheden. Er det sikkert nok at bruge soap headers? Skal man gøre mere? Det er ikke fordi jeg sidder og skal bygge en web bank, men det skal bare være sådan at måske ikke alle og enhver kan kalde denne service.
Avatar billede hlt Juniormester
20. april 2016 - 16:29 #2
Nu sidder jeg med et andet problem. Jeg skal have lavet et kald til min webservice fra en ekstern klient. Det gør jeg med en httpwebrequest. Men hvordan får jeg mine soap parametre med der?
Avatar billede arne_v Ekspert
20. april 2016 - 17:12 #3
Credentials i SOAP header *og* tvungen brug af HTTPS (almindelig HTTP ikke tilladt) boer vaere OK sikkerhedsmaessigt.
Avatar billede arne_v Ekspert
20. april 2016 - 17:13 #4
Du boer ikke kalde en SOAP service med raa HTTP kode (HttpWebRequest eller WebClient).

I.s.f boer du generere stub kode fra WSDL (i Visual Studio er det gemt under at tilfoeje en referance til en SOAP service).
Avatar billede hlt Juniormester
20. april 2016 - 18:37 #5
Hej Arne,
Jeg ved slet ikke nok omkring opsætning af SOAP med WSDL Hvad skal man bruge? Er det kun et WSDL dokument? Når jeg prøver at oprette en reference i Visual studio, med den url, så får jeg en fejl om at dokumentets content type er ukendt. Men er det ikke som standard et xml dokument der returneres? Eller skal jeg sætte det nogen steder?
Avatar billede hlt Juniormester
21. april 2016 - 11:12 #6
Nu fik jeg det rent faktisk til at virke. Fik lavet en WSDL fil igennem visual studio. Der er oprettet en app_webrefernce mappe. Men hvordan kalder jeg så denne webservice med username og password i SOAP headeren?
Avatar billede hlt Juniormester
21. april 2016 - 12:18 #7
Det ser ud til at jeg har fundet ud af det. Skal bare lige teste det fra en anden IP. Tak for hjælpen med at guide mig i den rigtige retning. Smider du et svar, så kan jeg tildele dig point
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester