120 likes | 342 Views
Gardermoen 17.oktober 2006. Per Grov. BAAT i Fysak. Teknisk løsning. Det er lagt inn løsning med brukernavn og passord Brukernavn og passord lagres på disk Samme brukernavn og passord for WMS og Webservices Webservices har ikke ticket WMS trenger ticket som varer en time
E N D
Gardermoen 17.oktober 2006 Per Grov BAAT i Fysak
Teknisk løsning • Det er lagt inn løsning med brukernavn og passord • Brukernavn og passord lagres på disk • Samme brukernavn og passord for WMS og Webservices • Webservices har ikke ticket • WMS trenger ticket som varer en time • Ny ticket hentes automatisk til WMS
Gjenkjenning av IP-adresse • Det er ikke åpnet for gjenkjenning av IP-adresse for Kartverkets nett • Fysak kan utvikles til å benytte brukernavn/passord og ticket
Påloggingsdialog kommer opp dersom denne informasjonen ikke er lagret Alias brukes i Webservices Pålogging
INI-fil med BAAT-informasjon [BAAT] BrukerID=Reidun Passord=Reidar AliasID=Reiulf ADTICKURL=http://www.geonorge.no/advancedTicket/go?ts=wms&style=fysak&user=<BrukerID>&password=<Passord>&extra=Fysak+bakgrunn TICKURL=https://baat.geonorge.no/skbaatts/req?brukerid=<BrukerID>&passord=<Passord>&retformat=s&tjenesteid=wms.topo&extra=Fysak+bakgrunn
Bruker løsning ”AdvancedTicket” for import fra tjenestekatalog http://www.geonorge.no/advancedTicket/go?ts=wms&style=fysak&user=<BrukerID>&password=<Passord>&extra=Fysak+bakgrunn Henting av tjenester fra tjenestekatalog
Resultat av henting fra tjenestekatalog ArcIMS tjenester (DEMO);http://dnweb5.dirnat.no/;DN ArcIMS tjenester (DEMO);http://www.ngu.no/;NGU ArcIMS tjenester (DEMO);http://kart2.nijos.no/;Nijos ArcIMS tjenester (DEMO);http://arcus.nve.no/;NVE ArcIMS tjenester;http://askeladden.ra.no;RA Norge i bilder (BAAT);http://wms.geonorge.no/skwms1/wms.norgeibilder/TI_33J736?;Statens kartverk Dybdedata;http://159.162.103.94/sjokart/wms?;Statens kartverk Norge i bilder;http://wms.norgeibilder.no/services/wms/wms.aspx;Statens kartverk Oversiktskart (BAAT);http://wms.geonorge.no/skwms1/wms.oversiktskart/TI_33JK4I?;Statens kartverk Kartdata_wms;http://wms.geonorge.no/skwms1/wms.kartdata/TI_33KA67?;Statens kartverk fkb_wms;http://wms.geonorge.no/skwms1/wms.fkb/TI_33L07J?;Statens kartverk Administrativ_Inndeling_wms;http://wms.geonorge.no/skwms1/wms.adm.inndeling/TI_33LD98?;Statens kartverk Topografisk_Norgeskart_wms;http://wms.geonorge.no/skwms1/wms.topo/TI_33M3AK?;Statens kartverk Topografisk_Norgeskart_graatone_wms;http://wms.geonorge.no/skwms1/wms.topo.graatone/TI_33MGC9?;Statens kartverk N5WMS;http://wms.geonorge.no/NGRInetWMS/N5WMS;Statens kartverk
Feilmelding ved manglende ticket <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <style TYPE="text/css" MEDIA=screen> <!— BODY {color: blue} H3 {color: red} --> </style> </head> <body> <h3>*** 'TICKET' ER UGYLDIG ***</h3> Applikasjon '/skwms1/wms.topo/TI_3D6KB2'<br> har ticket men denne er ikke gyldig.<br> (http://wms.geonorge.no/skwms1/wms.topo/TI_3D6KB2)<br> Ticket Server Error: 'Verify ticket request' kan ikke finne ticket angitt med parameter: ticketid=3D6KB2.<br> </body> </html>
Utskifting av en enkelt ticket • https://baat.geonorge.no/skbaatts/req?brukerid=<BrukerID>ak&passord=<Passord>&retformat=s&tjenesteid=wms.topo&extra=Fysak+bakgrunn • Resultat: G42FF • Kan også bruke ”SimpleTicket” • Ticket må automatisk kunne byttes både ved ”GetCapabilities”, ”GetFeatureInfo” og ”GetMap”
Funksjonskall til Webservices • int cNgisFormView1::HentFylker(SokRes_fra_Fylke *pFylkeSokRetur) • { • char szTx[300], szPath[_MAX_PATH], szCurDir[_MAX_PATH]; • HINSTANCE hDll; // Handle til dll for SSR_og_adresse • int (*HentFylker)(unsigned short *pstrBrukerID, unsigned short *pstrPassord, unsigned short *pstrAliasID, • int &nMaxAntFylker, int &nMaxAntKommuner, SokRes_fra_Fylke *pFylkeSokRetur); • LesBAATInfo(); • BSTR BrukerID = m_strBAATBrukerID.AllocSysString(); • BSTR Passord = m_strBAATPassord.AllocSysString(); • BSTR AliasID = m_strBAATAliasID.AllocSysString(); • int nAntallTreff=0; • // Lag fullstendig filnavn • sprintf_s(szPath,"%s%s.DLL", HentFysakKatalog(), "adr_ssr"); • hDll = LoadLibrary(szPath); • if(hDll != NULL) • { • HentFylker = (int(__cdecl *)(unsigned short *pstrBrukerID, unsigned short *pstrPassord, unsigned short *pstrAliasID, • int &nMaxAntFylker, int &nMaxAntKommuner, SokRes_fra_Fylke *pFylkeSokRetur)) GetProcAddress(hDll, "HentFylker"); • int nMaxAntFylker=20, nMaxAntallKommuner=50; // Må avstemmes mot arrayen i structen "SokRes_fra_SSR" • nAntallTreff=(*HentFylker)((unsigned short *)BrukerID, (unsigned short *)Passord, (unsigned short *)AliasID, • nMaxAntFylker, nMaxAntallKommuner, pFylkeSokRetur); • FreeLibrary(hDll); • hDll=NULL; • } • SysFreeString(BrukerID); • SysFreeString(Passord); • SysFreeString(AliasID); • return nAntallTreff; • }