|
| AspPDF Fra : Ukendt |
Dato : 05-11-08 09:30 |
|
Hej NG
Jeg prøver at bruge asppdf...
Jeg får godt nok genereret pdf filen og gemt i den rigtige mappe, men det er
ikke den rigtige html side, som bliver gemt...
Kode:
Doc.ImportFromUrl
http://www.bsndata.dk/vr/system/rapporter/rapportkunder_alle.asp,
"landscape=true"
Filename = Doc.Save(
"D:/xxx/xxx/xxx/xxx/vr/system/rapporter/rapport/importfromurl.pdf", False )
Den gemmer godt nok en side - index.asp(vr/system/index.asp), hvor den
skulle gemme denne side
kunder_alle.asp(vr/system/rapporter/rapport/kunder_alle.asp)...
Hvad går der lige galt...???
Hilsen
Bjarne
"Every day new surprises"
| |
Jørn Andersen (05-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 05-11-08 11:45 |
|
On Wed, 5 Nov 2008 09:29:58 +0100, "bsn" <bsnSNABELAoncableDOTdk> wrote:
>Hej NG
>
>Jeg prøver at bruge asppdf...
>
>Jeg får godt nok genereret pdf filen og gemt i den rigtige mappe, men det er
>ikke den rigtige html side, som bliver gemt...
>
>Kode:
>Doc.ImportFromUrl
> http://www.bsndata.dk/vr/system/rapporter/rapportkunder_alle.asp,
>"landscape=true"
>Filename = Doc.Save(
>"D:/xxx/xxx/xxx/xxx/vr/system/rapporter/rapport/importfromurl.pdf", False )
>
>Den gemmer godt nok en side - index.asp(vr/system/index.asp), hvor den
>skulle gemme denne side
>kunder_alle.asp(vr/system/rapporter/rapport/kunder_alle.asp)...
>
>Hvad går der lige galt...???
Måske at Url'en ikke eksisterer?
--
Jørn Andersen,
Brønshøj
| |
Ukendt (06-11-2008)
| Kommentar Fra : Ukendt |
Dato : 06-11-08 08:44 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:a2u2h41e4uicv7jarjdflldn32mts6jqk2@4ax.com...
> On Wed, 5 Nov 2008 09:29:58 +0100, "bsn" <bsnSNABELAoncableDOTdk> wrote:
>
>>Hej NG
>>
>>Jeg prøver at bruge asppdf...
>>
>>Jeg får godt nok genereret pdf filen og gemt i den rigtige mappe, men det
>>er
>>ikke den rigtige html side, som bliver gemt...
>>
>>Kode:
>>Doc.ImportFromUrl
>> http://www.bsndata.dk/vr/system/rapporter/rapport/kunder_alle.asp,
>>"landscape=true"
>>Filename = Doc.Save(
>>"D:/xxx/xxx/xxx/xxx/vr/system/rapporter/rapport/importfromurl.pdf",
>>False )
>>
>>Den gemmer godt nok en side - index.asp(vr/system/index.asp), hvor den
>>skulle gemme denne side
>>kunder_alle.asp(vr/system/rapporter/rapport/kunder_alle.asp)...
>>
>>Hvad går der lige galt...???
>
> Måske at Url'en ikke eksisterer?
Kan du uddybe lidt...
Måske det kan skyldes, at jeg har et session tjek liggende på siden, som
sender "ikke indloggede" til index-siden...
Bjarne
| |
Jørn Andersen (06-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 06-11-08 12:46 |
|
On Thu, 6 Nov 2008 08:44:19 +0100, "bsn" <bsnSNABELAoncableDOTdk> wrote:
>>>Doc.ImportFromUrl
>>> http://www.bsndata.dk/vr/system/rapporter/rapport/kunder_alle.asp,
>>>"landscape=true"
<url>
>> Måske at Url'en ikke eksisterer?
>
>Kan du uddybe lidt...
Hvis jeg prøver at gå ind på ovenstående Url, får jeg 404 - Siden findes
ikke.
>Måske det kan skyldes, at jeg har et session tjek liggende på siden, som
>sender "ikke indloggede" til index-siden...
Lyder som en mulig forklaring - men jeg burde så ikke få 404, men blive
omdirigeret - ??
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Bjarne S. Nielsen (06-11-2008)
| Kommentar Fra : Bjarne S. Nielsen |
Dato : 06-11-08 16:09 |
| | |
Stig Johansen (06-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 06-11-08 17:24 |
| | |
Michael Weber (06-11-2008)
| Kommentar Fra : Michael Weber |
Dato : 06-11-08 17:57 |
|
"Stig Johansen" <wopr.dk@gmaill.com> wrote in message
news:49131aae$0$90264$14726298@news.sunsite.dk...
> Bjarne S. Nielsen wrote:
>
>> Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
>>> On Thu, 6 Nov 2008 08:44:19 +0100, "bsn" <bsnSNABELAoncableDOTdk> wrote:
>>>
>>> >>>Doc.ImportFromUrl
>>> >>> http://www.bsndata.dk/vr/system/rapporter/rapport/kunder_alle.asp,
>>> >>>"landscape=true"
>>> <url>
>>> >> Måske at Url'en ikke eksisterer?
>>> >
>>
>> Der var en lille fejl i url'en
>> www.bsndata.dk/vr/system/rapporter/kunder_alle.asp
>> men virker stadig ikke...
>> kigger på det senere...
>
> Et kig med mit tool siger:
Hvilket tool er det ?
| |
Stig Johansen (06-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 06-11-08 19:48 |
|
Michael Weber wrote:
>> Et kig med mit tool siger:
>
> Hvilket tool er det ?
Noget hjemmestrikket noget, der kører på en lille Linux server, men kan
kaldes herfra:
< http://w-o-p-r.dk/wopr.tools/probes/wopr.probes.asp>
I det her tilfælde headers, og hvis man hakker af i linkcheckeren, skulle
siden gerne dukke op.
Det kører over min private ADSL, så det skal helst ikke (mis)bruges for
meget.
--
Med venlig hilsen
Stig Johansen
| |
Ukendt (06-11-2008)
| Kommentar Fra : Ukendt |
Dato : 06-11-08 23:59 |
| | |
Stig Johansen (07-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 07-11-08 01:22 |
|
"bsn" <bsnSNABELAoncableDOTdk> wrote:
> Tak for svar...
> Nej, der er vist ikke ged i sitet...
> ../index.asp = når du er logget ind
> ../../index.asp = loginside
> Hvad består geden i...???
Geden består i, at du får din loginside (../../index.asp) serveret til din
asppdf, og ikke en rapport (kunder_alle.asp).
> Hvad er endpoint...???
Hmm. 'Det endelige kontaktpunkt(?)'
Udtrykket er nok mest brugt i SOAP/Webservice verdenen.
--
Med venlig hilsen
Stig Johansen
| |
Ukendt (07-11-2008)
| Kommentar Fra : Ukendt |
Dato : 07-11-08 01:41 |
|
"Stig Johansen" <wopr.dk@gmaill.com> >> Hvad består geden i...???
>
> Geden består i, at du får din loginside (../../index.asp) serveret til din
> asppdf, og ikke en rapport (kunder_alle.asp).
Ja - hvad f..... er der galt - undskyld sproget...
>> Hvad er endpoint...???
>
> Hmm. 'Det endelige kontaktpunkt(?)'
OK - men mit script er sat til "kunder_alle.asp" som endpoint...
Det er lidt mærkeligt...har du en mulig løsning...???
Bjarne
| |
Stig Johansen (07-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 07-11-08 07:42 |
|
"bsn" <bsnSNABELAoncableDOTdk> wrote:
>
> "Stig Johansen" <wopr.dk@gmaill.com> >> Hvad består geden i...???
>>
>> Geden består i, at du får din loginside (../../index.asp) serveret til
>> din asppdf, og ikke en rapport (kunder_alle.asp).
>
> Ja - hvad f..... er der galt - undskyld sproget...
Der er det galt, som Jørn også skriver, at dit kald til "kunder_alle.asp"
skal ses som en ny og selvstændig request, og ikke som en del at det
kaldende script(s session).
Du har sikker noget kode i kunder_alle.asp a la
if not loggedin then
response.redirect ../index.asp
Response.redirect sender en 302 Object moved med angivelse af den nye
lokation (../index.asp) til browseren, eller som i dit tilfælde, det
underliggende ServerXMLHTTPRequest.
Klienten sammensætter så en ny request og får igen en 302 Object moved for
til sidst at lande på din login side (200 OK).
Der er ikke noget (teknisk) galt, for sådan virker HTTP.
> OK - men mit script er sat til "kunder_alle.asp" som endpoint...
> Det er lidt mærkeligt...har du en mulig løsning...???
Jørn har skrevet lidt om at bruge en global variabel (hvis det er samme
server), men man skal nok passe på med at bruge een global variabel hvis
der er flere brugere.
Man risikerer den ene bruger sætter den on, mens en anden sætter den off.
Jeg vil nok foreslå at sende en eller anden form for credentials med
(user/pass), evt. med en simpel hjemmestrikket kryptering, og validere mod
dem i kunder_alle.asp
Jeg tager hatten af for at Jørn gider skrive så meget på baggrund af dine
særdeles sparsomme oplysninger, men jeg synes du skal uddybe dit setup
lidt, så vi ikke sidder og gætter ud i den blå luft.
Du kunne f.eks. smide relevante dele af kode (kunder_alle.asp) her, samt
oplyse hvor det kaldende script ligger i forhold til det kaldte script.
--
Med venlig hilsen
Stig Johansen
| |
Ukendt (07-11-2008)
| Kommentar Fra : Ukendt |
Dato : 07-11-08 09:30 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev >
>>
>> "Stig Johansen" <wopr.dk@gmaill.com> >> Hvad består geden i...???
>>>
>>> Geden består i, at du får din loginside (../../index.asp) serveret til
>>> din asppdf, og ikke en rapport (kunder_alle.asp).
>>
>> Ja - hvad f..... er der galt - undskyld sproget...
>
> Der er det galt, som Jørn også skriver, at dit kald til "kunder_alle.asp"
> skal ses som en ny og selvstændig request, og ikke som en del at det
> kaldende script(s session).
>
> Du har sikker noget kode i kunder_alle.asp a la
> if not loggedin then
> response.redirect ../index.asp
Ja, men når jeg fjerner denne kode kommer der en fejl:
"Error opening URL. HTTP Status Code: 500. "
[snip]
> Jeg tager hatten af for at Jørn gider skrive så meget på baggrund af dine
> særdeles sparsomme oplysninger, men jeg synes du skal uddybe dit setup
> lidt, så vi ikke sidder og gætter ud i den blå luft.
Undskyld, hvis jeg er kommet med for sparsomme oplysninger...
Jeg bukker mig i støvet for både dig og Jørn...
> Du kunne f.eks. smide relevante dele af kode (kunder_alle.asp) her, samt
> oplyse hvor det kaldende script ligger i forhold til det kaldte script.
Min mappestruktur:
vr
--system
(link, som kalder udskriv.asp)
----rapporter
(udskriv.asp)
(kunder_alle.asp)
------rapport
(importfromurl.pdf)
Kode for "kunder_alle.asp":
<!--#include file="session.asp"-->
<!--#include file="../../conn.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="description" content="">
<meta name="keywords" content="">
<title></title>
<link rel="stylesheet" type="text/css" href="../../style.css">
<style type="text/css" media="screen"></style>
</head>
<body>
<h2 align="center"><br>Alle kunder</h2>
<%
Sql="Select * From qryKunde_Pudsning Where VirksomhedID_=" & BrugerID
RS.Open Sql, Conn, 3, 3
IF NOT RS.EOF THEN
Response.Write "<table border='0' width='100%' id='table1'>"
Response.Write "<tr>"
Response.Write "<th>Kunde</th>"
Response.Write "<th>Navn</th>"
Response.Write "<th>Adresse</th>"
Response.Write "<th>PostNr</th>"
Response.Write "<th>Bynavn</th>"
Response.Write "<th>Telefon</th>"
Response.Write "<th>Interval</th>"
Response.Write "<th>SidsteBesøg</th>"
Response.Write "<th>NæsteBesøg</th>"
Response.Write "<th>Betaling</th>"
Response.Write "<th>Pris</th>"
Response.Write "<th>Stige</th>"
Response.Write "</tr>"
Do Until RS.EOF
Recordcounter = Recordcounter + 1
If Recordcounter Mod 2 = 1 Then
Response.Write "<tr style='background-color:#ffffff;'>"
Else
Response.Write "<tr style='background-color:#C0C0C0;'>"
End If
Response.Write "<td>" & RS("KundeID") & "</td>"
Response.Write "<td>" & RS("Navn") & "</td>"
Response.Write "<td>" & RS("Adresse") & "</td>"
Response.Write "<td>" & RS("PostNr_") & "</td>"
Response.Write "<td>" & RS("ByNavn") & "</td>"
Response.Write "<td>" & RS("Telefon") & "</td>"
Response.Write "<td>" & RS("PudseInterval") & "</td>"
Response.Write "<td>" & RS("SidstPudset") & "</td>"
Response.Write "<td>" & RS("SidstPudset")+(RS("PudseHyppighedID_")*7) &
"</td>"
Response.Write "<td>" & RS("Betalingsform") & "</td>"
Response.Write "<td>" & FormatCurrency(RS("Pris"),2) & "</td>"
Response.Write "<td>" & RS("StigeNavn") & "</td>"
Response.Write "</tr>"
RS.MoveNext
Loop
Response.Write "</table>"
ELSE
Response.Write "Ingen kunder i søgningen..."
Response.End
END IF
%>
</body>
<!--#include file="../../closeconn.asp"-->
</html>
Bjarne
| |
Jørn Andersen (07-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 07-11-08 15:02 |
|
On Fri, 7 Nov 2008 09:30:01 +0100, "bsn" <bsnSNABELAoncableDOTdk> wrote:
>> Du har sikker noget kode i kunder_alle.asp a la
>> if not loggedin then
>> response.redirect ../index.asp
>
>Ja, men når jeg fjerner denne kode kommer der en fejl:
>"Error opening URL. HTTP Status Code: 500. "
Og hvad gemmer der sig bag denne kode 500?
Der burde komme en mere udførlig ASP-fejl (eller anden
system-meddelelse).
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Ukendt (07-11-2008)
| Kommentar Fra : Ukendt |
Dato : 07-11-08 23:48 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev
>
>>> Du har sikker noget kode i kunder_alle.asp a la
>>> if not loggedin then
>>> response.redirect ../index.asp
>>
>>Ja, men når jeg fjerner denne kode kommer der en fejl:
>>"Error opening URL. HTTP Status Code: 500. "
>
> Og hvad gemmer der sig bag denne kode 500?
> Der burde komme en mere udførlig ASP-fejl (eller anden
> system-meddelelse).
Se svar til Stig...
Bjarne
| |
Stig Johansen (07-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 07-11-08 16:29 |
|
"bsn" <bsnSNABELAoncableDOTdk> wrote in message
news:4913fc94$0$15898$edfadb0f@dtext01.news.tele.dk...
> Ja, men når jeg fjerner denne kode kommer der en fejl:
> "Error opening URL. HTTP Status Code: 500. "
Det er formentlig en fejl i dit asp script (kunder_alle.asp).
Du skal sørge for det virker ved kald fra en browser uden forudgående login
og etablering af 'session'.
> Undskyld, hvis jeg er kommet med for sparsomme oplysninger...
Sådan var det nu ikke ment, men nogle gange kan det være svært at gætte sig
til hvad problemet egentlig er.
> > Du kunne f.eks. smide relevante dele af kode (kunder_alle.asp) her, samt
> > oplyse hvor det kaldende script ligger i forhold til det kaldte script.
>
> Min mappestruktur:
> vr
> --system
> (link, som kalder udskriv.asp)
> ----rapporter
> (udskriv.asp)
> (kunder_alle.asp)
> ------rapport
> (importfromurl.pdf)
Men når du skriver det her, så lyder det som om både det kaldende script og
det kaldte script ligger på samme server.
Det gør det noget nemmere mht. authentication, da du blot kan bruge
serverens + din egen IP adresse.
Jeg kan se du kører på nt2.unoeuro.com med IP'en 195.41.131.22.
Hvis du så begrænser adgangen til denne IP samt din (80.196.28.246), så
behøver du nok ikke så meget andet.
Men en anden ting - det er ikke så smart at give en fil et statisk navn,
eksempelvis:
Filename =
Doc.Save("D:/xxx/xxx/xxx/xxx/vr/system/rapporter/rapport/importfromurl.pdf",
...)
Prøv at forestille dig, at 2 kunder, eller eks. du og jeg, bestiller
rapporten på samme tid - den ene vil overskrive den anden, og der vil ske
det, at enten får jeg din rapport, eller også får du min.
> <!--#include file="session.asp"-->
Det er sikkert her dine redirigeringer finder sted.
I stedet for en egenlig login kan du evt. begrænse det ved at tjekke på
originating IP - a la:
if Request.Servervariables("REMOTE_ADDR") <> "195.41.131.22" and _
Request.Servervariables("REMOTE_ADDR") <> "80.196.28.246" _
then
.... response.write "Sorry no access..."
Så er der kun dig og din server (dit asp script), der får adgang til
funktionen.
> <%
> Sql="Select * From qryKunde_Pudsning Where VirksomhedID_=" & BrugerID
Ud fra den kode du har postet fremgår der ikke nogen definition af
BrugerID - det kunne være et gæt, at det er det der går galt (giver en 500
Internal Server Error), men prøv at kalde funktionen (URL'en) direkte, så
burde der være en mere klar melding.
--
Med venlig hilsen/Best regards
Stig Johansen
| |
Jørn Andersen (07-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 07-11-08 17:02 |
|
On Fri, 7 Nov 2008 16:28:56 +0100, "Stig Johansen" <wopr.dk@gmail.com>
wrote:
>Men en anden ting - det er ikke så smart at give en fil et statisk navn,
>eksempelvis:
>Filename =
>Doc.Save("D:/xxx/xxx/xxx/xxx/vr/system/rapporter/rapport/importfromurl.pdf",
>..)
>
>Prøv at forestille dig, at 2 kunder, eller eks. du og jeg, bestiller
>rapporten på samme tid - den ene vil overskrive den anden, og der vil ske
>det, at enten får jeg din rapport, eller også får du min.
Nej, det sker ikke, da der er sat False til Overwrite-parameteren. Den
skriver så i stedet til importfromurl(1).pdf, importfromurl(2).pdf osv.
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Stig Johansen (07-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 07-11-08 17:08 |
|
Jørn Andersen wrote:
> On Fri, 7 Nov 2008 16:28:56 +0100, "Stig Johansen" <wopr.dk@gmail.com>
> wrote:
>
>>Men en anden ting - det er ikke så smart at give en fil et statisk navn,
>>eksempelvis:
>>Filename =
>>Doc.Save("D:/xxx/xxx/xxx/xxx/vr/system/rapporter/rapport/importfromurl.pdf",
>>..)
>>
>>Prøv at forestille dig, at 2 kunder, eller eks. du og jeg, bestiller
>>rapporten på samme tid - den ene vil overskrive den anden, og der vil ske
>>det, at enten får jeg din rapport, eller også får du min.
>
> Nej, det sker ikke, da der er sat False til Overwrite-parameteren. Den
> skriver så i stedet til importfromurl(1).pdf, importfromurl(2).pdf osv.
Ok, skulle måske have kigget i dokumentationen
Men hvis nu Bjarne 'peger' på "importfromurl.pdf", har man så ikke samme
problem?
Det er stadig gætteri, da jeg ikke synes det fremgår hvad Bjarne har tænkt
sig at gøre med PDF'en.
--
Med venlig hilsen
Stig Johansen
| |
Jørn Andersen (07-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 07-11-08 19:09 |
|
On Fri, 07 Nov 2008 17:08:01 +0100, Stig Johansen <wopr.dk@gmaill.com>
wrote:
>>>Prøv at forestille dig, at 2 kunder, eller eks. du og jeg, bestiller
>>>rapporten på samme tid - den ene vil overskrive den anden, og der vil ske
>>>det, at enten får jeg din rapport, eller også får du min.
>>
>> Nej, det sker ikke, da der er sat False til Overwrite-parameteren. Den
>> skriver så i stedet til importfromurl(1).pdf, importfromurl(2).pdf osv.
>
>Ok, skulle måske have kigget i dokumentationen
>
>Men hvis nu Bjarne 'peger' på "importfromurl.pdf", har man så ikke samme
>problem?
Filename = Doc.Save( Server.MapPath("importfromurl.pdf"), False )
- betyder at filen gemmes i aktuel mappe (samme som scriptet).
(og den kan selvfølgelig gemmes alle mulige andre steder ...)
Response.Write "<a href=""" & Filename & """>" & Filename & "<a/>" &
vbcrlf
- vil give et link til fx importfromurl(7).pdf
Gemmer man den andre steder, skal man have en anden sti, men fastholde
Filename-variablen.
>Det er stadig gætteri, da jeg ikke synes det fremgår hvad Bjarne har tænkt
>sig at gøre med PDF'en.
Det er jo så hans problem
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Ukendt (07-11-2008)
| Kommentar Fra : Ukendt |
Dato : 07-11-08 23:46 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev
>
>> On Fri, 7 Nov 2008 16:28:56 +0100, "Stig Johansen" <wopr.dk@gmail.com>
>> wrote:
>>
>>>Men en anden ting - det er ikke så smart at give en fil et statisk navn,
>>>eksempelvis:
>>>Filename =
>>>Doc.Save("D:/xxx/xxx/xxx/xxx/vr/system/rapporter/rapport/importfromurl.pdf",
>>>..)
>>>
>>>Prøv at forestille dig, at 2 kunder, eller eks. du og jeg, bestiller
>>>rapporten på samme tid - den ene vil overskrive den anden, og der vil ske
>>>det, at enten får jeg din rapport, eller også får du min.
>>
>> Nej, det sker ikke, da der er sat False til Overwrite-parameteren. Den
>> skriver så i stedet til importfromurl(1).pdf, importfromurl(2).pdf osv.
>
> Ok, skulle måske have kigget i dokumentationen
>
> Men hvis nu Bjarne 'peger' på "importfromurl.pdf", har man så ikke samme
> problem?
>
> Det er stadig gætteri, da jeg ikke synes det fremgår hvad Bjarne har tænkt
> sig at gøre med PDF'en.
PDF'en. bliver streamet med Binary.Write...
Bjarne
| |
Stig Johansen (08-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 08-11-08 01:19 |
|
"bsn" <bsnSNABELAoncableDOTdk> wrote:
> PDF'en. bliver streamet med Binary.Write...
Jeg kiggede på dokumentationen, og det ser ud til man kan streame PDF'en
direkte uden at gemme først.
SaveHTTP:
< http://www.asppdf.com/manual_03.html>
afsnit 3.2.2
--
Med venlig hilsen
Stig Johansen
| |
Ukendt (07-11-2008)
| Kommentar Fra : Ukendt |
Dato : 07-11-08 23:42 |
|
"Stig Johansen" <wopr.dk@gmail.com> skrev
>> Ja, men når jeg fjerner denne kode kommer der en fejl:
>> "Error opening URL. HTTP Status Code: 500. "
>
> Det er formentlig en fejl i dit asp script (kunder_alle.asp).
> Du skal sørge for det virker ved kald fra en browser uden forudgående
> login
> og etablering af 'session'.
>
>> Undskyld, hvis jeg er kommet med for sparsomme oplysninger...
>
> Sådan var det nu ikke ment, men nogle gange kan det være svært at gætte
> sig
> til hvad problemet egentlig er.
>
>> > Du kunne f.eks. smide relevante dele af kode (kunder_alle.asp) her,
>> > samt
>> > oplyse hvor det kaldende script ligger i forhold til det kaldte script.
>>
>> Min mappestruktur:
>> vr
>> --system
>> (link, som kalder udskriv.asp)
>> ----rapporter
>> (udskriv.asp)
>> (kunder_alle.asp)
>> ------rapport
>> (importfromurl.pdf)
>
> Men når du skriver det her, så lyder det som om både det kaldende script
> og
> det kaldte script ligger på samme server.
>
> Det gør det noget nemmere mht. authentication, da du blot kan bruge
> serverens + din egen IP adresse.
>
> Jeg kan se du kører på nt2.unoeuro.com med IP'en 195.41.131.22.
> Hvis du så begrænser adgangen til denne IP samt din (80.196.28.246), så
> behøver du nok ikke så meget andet.
>
> Men en anden ting - det er ikke så smart at give en fil et statisk navn,
> eksempelvis:
> Filename =
> Doc.Save("D:/xxx/xxx/xxx/xxx/vr/system/rapporter/rapport/importfromurl.pdf",
> ..)
>
> Prøv at forestille dig, at 2 kunder, eller eks. du og jeg, bestiller
> rapporten på samme tid - den ene vil overskrive den anden, og der vil ske
> det, at enten får jeg din rapport, eller også får du min.
Det er kun til jeg fik det til at virke.
Så skal der kobles et KundeID til "importfromurl.pdf" =
"importfromurl_1.pdf"
>
>> <!--#include file="session.asp"-->
>
> Det er sikkert her dine redirigeringer finder sted.
> I stedet for en egenlig login kan du evt. begrænse det ved at tjekke på
> originating IP - a la:
> if Request.Servervariables("REMOTE_ADDR") <> "195.41.131.22" and _
> Request.Servervariables("REMOTE_ADDR") <> "80.196.28.246" _
> then
> ... response.write "Sorry no access..."
Der behøver sådan set ikke at være noget tjek på siden("importfromurl.pdf")
til udskrift...
>> <%
>> Sql="Select * From qryKunde_Pudsning Where VirksomhedID_=" & BrugerID
>
> Ud fra den kode du har postet fremgår der ikke nogen definition af
> BrugerID - det kunne være et gæt, at det er det der går galt (giver en 500
> Internal Server Error), men prøv at kalde funktionen (URL'en) direkte, så
> burde der være en mere klar melding.
Mente jeg havde prøvet dette men...
Lige nøjagtig Stig - har afprøvet uden BrugerID, og så virker det...
Du har sikkert svaret på det her før, men jeg kan ikke lige se, hvor det er
i tråden...
Hvorfor virker det ikke med kriteriet BrugerID, som udspringer af en
Sessionvariabel...???
Så kom jeg et lille skridt nærmere målet...
Bjarne
| |
Stig Johansen (08-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 08-11-08 01:45 |
|
"bsn" <bsnSNABELAoncableDOTdk> wrote:
>>> <!--#include file="session.asp"-->
>>
>> Det er sikkert her dine redirigeringer finder sted.
>> I stedet for en egenlig login kan du evt. begrænse det ved at tjekke på
>> originating IP - a la:
>> if Request.Servervariables("REMOTE_ADDR") <> "195.41.131.22" and _
>> Request.Servervariables("REMOTE_ADDR") <> "80.196.28.246" _
>> then
>> ... response.write "Sorry no access..."
>
> Der behøver sådan set ikke at være noget tjek på
> siden("importfromurl.pdf") til udskrift...
Det var i kunder_alle.asp jeg mente, så ikke alle kan få adgang til
rapporten.
>>> <%
>>> Sql="Select * From qryKunde_Pudsning Where VirksomhedID_=" & BrugerID
>>
>> Ud fra den kode du har postet fremgår der ikke nogen definition af
>> BrugerID - det kunne være et gæt, at det er det der går galt (giver en
>> 500 Internal Server Error), men prøv at kalde funktionen (URL'en)
>> direkte, så burde der være en mere klar melding.
>
> Mente jeg havde prøvet dette men...
>
> Lige nøjagtig Stig - har afprøvet uden BrugerID, og så virker det...
> Du har sikkert svaret på det her før, men jeg kan ikke lige se, hvor det
> er i tråden...
> Hvorfor virker det ikke med kriteriet BrugerID, som udspringer af en
> Sessionvariabel...???
>
> Så kom jeg et lille skridt nærmere målet...
Nu ved jeg ikke hvad dit kaldende script hedder, men lad os kalde det
print.asp.
Når man opererer med sessionvariable sker det via en cookie, som refererer
til den aktuelle session.
Denne cookie bliver sendt frem og tilbage til browseren, som derfor 'husker'
en session.
Hvis du fra denne session via 'print.asp' kalder end anden asp side,
kunder_alle.asp, skal denne cookie sendes med hvis du skal bruge session
variable i kunder_alle.asp.
Funktionen:
Doc.ImportFromUrl http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp,
medsender ikke denne cookie, og derfor vil kunder_alle.asp opfatte det som
en ny, og tom, session.
Derfor er din BrugerID ikke defineret i kunder_alle.asp.
Sætningen
Sql="Select * From qryKunde_Pudsning Where VirksomhedID_=" & BrugerID
vil formentlig fejle med 'undefined object' eller 'invalid use of null'
eller noget lignende. Den burde du have fået med din '500 internal error'.
Hvis du begrænser adgangen til de 2 IP adresser, og overfører brugerid ved
kald, kan du komme videre.
Dvs. byg din request som kunder_alle.asp?brugerid=<aktuelbrugerid>
I kunder_alle.asp kan du så bygge SQL'et som
Sql="Select * From qryKunde_Pudsning Where VirksomhedID_=" &
Request.Querystring("BrugerID")
Lidt afhængig af hvad der kan stå i BrugerID skal du nok kigge på replace af
' til '' (=2 stk ').
Jørn er inde på noget med en global application variable, men det er jeg
ikke godt nok inde i asp til at forklare(=kende til).
--
Med venlig hilsen
Stig Johansen
| |
Ukendt (08-11-2008)
| Kommentar Fra : Ukendt |
Dato : 08-11-08 02:49 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev >
>>>> <!--#include file="session.asp"-->
>>>
>>> Det er sikkert her dine redirigeringer finder sted.
>>> I stedet for en egenlig login kan du evt. begrænse det ved at tjekke på
>>> originating IP - a la:
>>> if Request.Servervariables("REMOTE_ADDR") <> "195.41.131.22" and _
>>> Request.Servervariables("REMOTE_ADDR") <> "80.196.28.246" _
>>> then
>>> ... response.write "Sorry no access..."
>>
>> Der behøver sådan set ikke at være noget tjek på
>> siden("importfromurl.pdf") til udskrift...
>
> Det var i kunder_alle.asp jeg mente, så ikke alle kan få adgang til
> rapporten.
>
>>>> <%
>>>> Sql="Select * From qryKunde_Pudsning Where VirksomhedID_=" & BrugerID
>>>
>>> Ud fra den kode du har postet fremgår der ikke nogen definition af
>>> BrugerID - det kunne være et gæt, at det er det der går galt (giver en
>>> 500 Internal Server Error), men prøv at kalde funktionen (URL'en)
>>> direkte, så burde der være en mere klar melding.
>>
>> Mente jeg havde prøvet dette men...
>>
>> Lige nøjagtig Stig - har afprøvet uden BrugerID, og så virker det...
>> Du har sikkert svaret på det her før, men jeg kan ikke lige se, hvor det
>> er i tråden...
>> Hvorfor virker det ikke med kriteriet BrugerID, som udspringer af en
>> Sessionvariabel...???
>>
>> Så kom jeg et lille skridt nærmere målet...
>
> Nu ved jeg ikke hvad dit kaldende script hedder, men lad os kalde det
> print.asp.
> Når man opererer med sessionvariable sker det via en cookie, som refererer
> til den aktuelle session.
>
> Denne cookie bliver sendt frem og tilbage til browseren, som derfor
> 'husker'
> en session.
>
> Hvis du fra denne session via 'print.asp' kalder end anden asp side,
> kunder_alle.asp, skal denne cookie sendes med hvis du skal bruge session
> variable i kunder_alle.asp.
print.asp kode
KundeID er taget med KundeID=Request.Querystring("ID")
strFilePath =
" http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp?ID=" & KundeID
Giver denne fejl :
Persits.PdfManager.1 error '800a006a'
Error opening URL. HTTP Status Code: 500.
/vr/system/rapporter/udskriv_pdf.asp, line 20
Linje 20 = Doc.ImportFromUrl strFilePath , "landscape=true"
>
> Hvis du begrænser adgangen til de 2 IP adresser, og overfører brugerid ved
> kald, kan du komme videre.
Hvilken side skal begrænsningen kodes på...???
Jeg har prøvet at lægge det på "kunder_alle_asp...
Det giver samme fejl som ovenfor...
Bjarne
| |
Jørn Andersen (08-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 08-11-08 03:18 |
|
On Sat, 8 Nov 2008 02:48:33 +0100, "bsn" <bsnSNABELAoncableDOTdk> wrote:
>print.asp kode
>KundeID er taget med KundeID=Request.Querystring("ID")
>strFilePath =
>" http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp?ID=" & KundeID
>Giver denne fejl :
>Persits.PdfManager.1 error '800a006a'
>Error opening URL. HTTP Status Code: 500.
>/vr/system/rapporter/udskriv_pdf.asp, line 20
>
>Linje 20 = Doc.ImportFromUrl strFilePath , "landscape=true"
Kan du åbne:
http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp?ID=37
(eller hvad dit KundeID nu er).
manuelt? Altså når du ikke er logget ind?
Jeg får en kode fejl, når jeg forsøger.
Det er den første betingelse.
Hvis ikke du kan det, så kan du heller ikke med pdf-scriptet.
Når din kodefejl er løst, så er det næste du skal have løst, at komme
uden om dit login-tjek - som jeg vist har skrevet et par gange
>> Hvis du begrænser adgangen til de 2 IP adresser, og overfører brugerid ved
>> kald, kan du komme videre.
>
>Hvilken side skal begrænsningen kodes på...???
>Jeg har prøvet at lægge det på "kunder_alle_asp...
>Det giver samme fejl som ovenfor...
Glem denne del, indtil du har fået det grundlæggende til at virke. I
øjeblikket er problemet ikke at lægge begrænsning ind, men at *fjerne*
en begrænsning (= dit login-tjek).
Når det virker, må du finde en passende måde at begrænse adgangen på.
Good luck!
--
Jørn Andersen,
Brønshøj
| |
Jørn Andersen (08-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 08-11-08 04:20 |
|
On Sat, 08 Nov 2008 03:17:59 +0100, Jørn Andersen <jorn@jorna.dk> wrote:
>Kan du åbne:
> http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp?ID=37
>(eller hvad dit KundeID nu er).
>manuelt? Altså når du ikke er logget ind?
>
>Jeg får en kode fejl, når jeg forsøger.
Sql=Replace(Sql,""","'")
->
Sql=Replace(Sql,"""","'")
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Ukendt (09-11-2008)
| Kommentar Fra : Ukendt |
Dato : 09-11-08 18:20 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev
Se svar til Stig...
Bjarne
| |
Stig Johansen (08-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 08-11-08 08:00 |
|
"bsn" <bsnSNABELAoncableDOTdk> wrote:
> print.asp kode
> KundeID er taget med KundeID=Request.Querystring("ID")
> strFilePath =
> " http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp?ID=" & KundeID
> Giver denne fejl :
> Persits.PdfManager.1 error '800a006a'
> Error opening URL. HTTP Status Code: 500.
> /vr/system/rapporter/udskriv_pdf.asp, line 20
>
> Linje 20 = Doc.ImportFromUrl strFilePath , "landscape=true"
Nej, det er 'Doc.ImportFromUrl' der rapporterer fejl i linie 20 fra den url
du kalder (kunder_alle.asp).
Den fulde fejl vises ved at kalde kunder_alle.asp i en browser, og den
siger:
Microsoft VBScript compilation error '800a03ee'
Expected ')'
/vr/system/rapporter/kunder_alle.asp, line 20
Sql=Replace(Sql,""","'")
---------------------^
Her er det fordi du måske blander ' og " sammen.
Jeg så din tabel i går(i nat), og nu kan jeg se at din BrugerId = KundeId =
Id.
Da det tilsyneladende er tal, skal du ikke benytte replace.
Replace af ' er kun til tekster i forbindelse med SQL, hvor ' kan indgå i
data, samtidig med det er en delimiter.
Hvis du har et SQL, eks.
sql="select * from kunder where kundeid=' " & kundeid & " ' "
(Jeg har sat blanke mellem tegnene så man kan se forskellen, de skal ikke
være der).
Hvis kundeid så er "bjarne's biks", vil det give denne sql:
select * from kunder where kundeid='bjarne's biks'
denne vil fejle fordi databasen tror strengen slutter efter bjarne.
I SQL benytter man dobbelte 'er når det skal være en del af data, og ikke
delimiter, så SQL'en skal være:
select * from kunder where kundeid='bjarne''s biks'
Dette gøres ved at replace _på de enkelte felter_, eks:
sql="select * from kunder where kundeid=' " & replace(kundeid," ' "," ' ' ")
& " ' "
(igen er der sat blanke så man kan se forskellen, de skal ikke være der).
Men hvis Kundeid er et tal, så slet linien (linie 20).
>> Hvis du begrænser adgangen til de 2 IP adresser, og overfører brugerid
>> ved kald, kan du komme videre.
>
> Hvilken side skal begrænsningen kodes på...???
kunder_alle.asp, så ikke alle og enhver kan trække rapporter ved at kende
kundeid.
> Jeg har prøvet at lægge det på "kunder_alle_asp...
> Det giver samme fejl som ovenfor...
Ja, programmet fejler i linie 20 uanset om du har spærring på eller ej.
Som Jørn skriver, så vent med spærring til det virker uden.
Start med at lave kunde_alle.asp, så det virker efter hensigten ved at kalde
den direkte fra browseren.
Kald eksempelvis:
http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp?ID=3
og andre kundenumre direkte fra din browser.
Når kunder_alle.asp virker efter hensigten, så kan du lave "print.asp".
Til sidste kan du så læggen en spærring ind, så kunder_alle.asp kun kan
tilgås fra din egen server (=print.asp) eller din egen PC, så du kan kalde
kunder_alle.asp direkte fra en browser.
Når du skal tjekke om spærringen virker, kan du bruge w3's validator med
view source, så kan du se hvad "ikke autoriserede brugere" får frem på
skærmen.
--
Med venlig hilsen
Stig Johansen
| |
Ukendt (09-11-2008)
| Kommentar Fra : Ukendt |
Dato : 09-11-08 18:19 |
| | |
Stig Johansen (09-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 09-11-08 18:32 |
| | |
Ukendt (09-11-2008)
| Kommentar Fra : Ukendt |
Dato : 09-11-08 18:50 |
| | |
Jørn Andersen (09-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 09-11-08 22:08 |
|
On Sun, 9 Nov 2008 18:49:34 +0100, "bsn" <bsnSNABELAoncableDOTdk> wrote:
>> Du arbejder sikkert stadig på det, men prøv at kalde
>> < http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp?id=2>
>> og
>> < http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp?id=1>
>
>Ja, jeg ved det godt...kan måske leve med det...
>Brugere af systemet, vil aldrig se disse url´s, så det skal være nogle som
>kender den, og det gør i jo...
<url: http://en.wikipedia.org/wiki/Security_through_obscurity>
>Med mindre du har en god idé...
Du kunne bruge en application-variabel, som sættes på dit
udskrifts-script før udskrift og checkes på kunder_alle.asp og
nulstilles på udskrifts-script efter udskrift.
Fx i udskriv-script:
strSessionId = Right("abcdef" & Session.SessionId, 6)
strApplicVar = "skriv" & strSessionId
Application(strApplicVar) = True
' Udskriv
Application.Contents.Remove(strApplicVar)
Kald den fra AspPDF med
" http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp?id=1&user=" &
strSessionId
På kunder_alle.asp henter du så:
strSessionId = Request.QueryString("user")
strApplicVar = "skriv" & strSessionId
If Application(strApplicVar) Then
' OK
Else
' Ingen adgang
End If
Humlen i dette er, at du har en variabel, som med over 99,999 pct.
sikkerhed er forskellig for hver bruger inden for den korte tid, det
tager at udskrive (strSessionId).
Denne variabel kæder du sammen med en fast streng, som er kodet i
scriptet ("skriv") og bruger den til at danne navnet på en
Application-variabel, som sættes True i dit udskrifts-script.
Du overfører så den variable del med Querystrengen, bruger den til at
finde navnet på Application-variablen og checker om den er sat True.
Hvis en anden bruger forsøger sig, vil hun/han dels ikke have samme
sessionId - og selv om det i 1 ud af en million tilfælde ville være
tilfældet, så vil Application-variablen ikke længere være sat.
Så længe du stadig har login-tjek i dit udskrifts-script, burde
kunder_alle.asp være sikret.
Har jeg overset noget?
PS:
Right("abcdef" & Session.SessionId, 6), fordi SessionId måske kan være
et lille tal (?)
Good luck!
--
Jørn Andersen,
Brønshøj
| |
Ukendt (10-11-2008)
| Kommentar Fra : Ukendt |
Dato : 10-11-08 10:43 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev
>
>>> Du arbejder sikkert stadig på det, men prøv at kalde
>>> < http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp?id=2>
>>> og
>>> < http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp?id=1>
>>
>>Ja, jeg ved det godt...kan måske leve med det...
>>Brugere af systemet, vil aldrig se disse url´s, så det skal være nogle som
>>kender den, og det gør i jo...
>
> <url: http://en.wikipedia.org/wiki/Security_through_obscurity>
>
>>Med mindre du har en god idé...
>
> Du kunne bruge en application-variabel, som sættes på dit
> udskrifts-script før udskrift og checkes på kunder_alle.asp og
> nulstilles på udskrifts-script efter udskrift.
>
> Fx i udskriv-script:
> strSessionId = Right("abcdef" & Session.SessionId, 6)
> strApplicVar = "skriv" & strSessionId
> Application(strApplicVar) = True
> ' Udskriv
> Application.Contents.Remove(strApplicVar)
>
> Kald den fra AspPDF med
> " http://www.bsndata.dk/vr/system/rapporter/kunder_alle.asp?id=1&user=" &
> strSessionId
>
> På kunder_alle.asp henter du så:
> strSessionId = Request.QueryString("user")
> strApplicVar = "skriv" & strSessionId
> If Application(strApplicVar) Then
> ' OK
> Else
> ' Ingen adgang
> End If
Bruger :
If Not Application(strApplicVar) Then
Response.Write "Ingen adgang..."
End If
Virker fint - mange tak Jørn...
Bjarne
| |
Stig Johansen (10-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 10-11-08 07:05 |
|
"bsn" <bsnSNABELAoncableDOTdk> wrote:
> Ja, jeg ved det godt...kan måske leve med det...
> Brugere af systemet, vil aldrig se disse url´s, så det skal være nogle som
> kender den, og det gør i jo...
> Med mindre du har en god idé...
Det har jeg tidligere nævnt.
Hvis du lægger spærring på din, og din servers IP adresser, sikrer du dig,
at kun dit ASP script samt dig selv kan få adgang til kunder_alle.asp
Selv om man kender URL og bruger id vil man blive afvist.
Hvis du lægger en stump a la
......
if Request.Servervariables("REMOTE_ADDR") <> "195.41.131.22" and _
Request.Servervariables("REMOTE_ADDR") <> "80.196.28.246" _
then
response.write "Sorry no access..."
(evt. lave en 404 Not found aht søgemaskiner)
response.end
end if
......
ind i toppen - eller en include fil - af kunder_alle.asp sikrer du dig, at
kun disse 2 IP adresser har adgang.
Jørn har skrevet om brug af application variabel.
--
Med venlig hilsen
Stig Johansen
| |
Ukendt (10-11-2008)
| Kommentar Fra : Ukendt |
Dato : 10-11-08 10:54 |
|
"Stig Johansen" <wopr.dk@gmaill.com> skrev i en meddelelse
news:4917cfbd$0$90267$14726298@news.sunsite.dk...
> "bsn" <bsnSNABELAoncableDOTdk> wrote:
>
>> Ja, jeg ved det godt...kan måske leve med det...
>> Brugere af systemet, vil aldrig se disse url´s, så det skal være nogle
>> som
>> kender den, og det gør i jo...
>> Med mindre du har en god idé...
>
> Det har jeg tidligere nævnt.
> Hvis du lægger spærring på din, og din servers IP adresser, sikrer du dig,
> at kun dit ASP script samt dig selv kan få adgang til kunder_alle.asp
>
> Selv om man kender URL og bruger id vil man blive afvist.
>
> Hvis du lægger en stump a la
> .....
> if Request.Servervariables("REMOTE_ADDR") <> "195.41.131.22" and _
> Request.Servervariables("REMOTE_ADDR") <> "80.196.28.246" _
> then
> response.write "Sorry no access..."
> (evt. lave en 404 Not found aht søgemaskiner)
> response.end
> end if
> .....
> ind i toppen - eller en include fil - af kunder_alle.asp sikrer du dig, at
> kun disse 2 IP adresser har adgang.
>
> Jørn har skrevet om brug af application variabel.
Tak for svar - jeg bruger Jørns model...
Bjarne
| |
Jørn Andersen (10-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 10-11-08 19:55 |
|
On Mon, 10 Nov 2008 07:04:54 +0100, Stig Johansen <wopr.dk@gmaill.com>
wrote:
>Hvis du lægger spærring på din, og din servers IP adresser, sikrer du dig,
>at kun dit ASP script samt dig selv kan få adgang til kunder_alle.asp
Det kan være meget nyttigt i nogle sammenhænge.
Man skal så have taget stilling til, at man ikke vil tilgå siden fra en
anden matrikel end ens egen
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Jørn Andersen (08-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 08-11-08 02:59 |
|
On Sat, 08 Nov 2008 01:44:52 +0100, Stig Johansen <wopr.dk@gmaill.com>
wrote:
>Jørn er inde på noget med en global application variable, men det er jeg
>ikke godt nok inde i asp til at forklare(=kende til).
De bruges akkurat ligesom session-variable, men er ikke knyttet til den
enkelte session - de holdes "i live", indtil serveren (applikationen)
resettes/genstartes.
Nogle bruger Application-variable til at indeholde en simpel
besøgstæller ("x brugere en nu online"). Eller de kan bruges til at
indeholde globale variable (så lægger man dem oftest i global.asa).
Personligt har jeg sjældent brugt dem ...
<url: http://www.w3schools.com/asp/asp_ref_application.asp>
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Michael Weber (11-11-2008)
| Kommentar Fra : Michael Weber |
Dato : 11-11-08 14:58 |
|
"Jørn Andersen" <jorn@jorna.dk> wrote in message
news:nor9h4tgrc3om86v21ve54v4fol5ugccc3@4ax.com...
> On Sat, 08 Nov 2008 01:44:52 +0100, Stig Johansen <wopr.dk@gmaill.com>
> wrote:
>
>>Jørn er inde på noget med en global application variable, men det er jeg
>>ikke godt nok inde i asp til at forklare(=kende til).
>
> De bruges akkurat ligesom session-variable, men er ikke knyttet til den
> enkelte session - de holdes "i live", indtil serveren (applikationen)
> resettes/genstartes.
>
> Nogle bruger Application-variable til at indeholde en simpel
> besøgstæller ("x brugere en nu online"). Eller de kan bruges til at
> indeholde globale variable (så lægger man dem oftest i global.asa).
>
> Personligt har jeg sjældent brugt dem ...
>
> <url: http://www.w3schools.com/asp/asp_ref_application.asp>
Som jeg har forstået det, vil du bruge en Application-variabel
til at tjekke om den enkelte bruger har adgang til en side.
Det kan give 2 problemer :
1) Hvis der sker en fejl mellem de punkter, hvor man tildeler
Application-variablen værdier.
Kan løses ved at drysse lidt On Error Resume ud, de rigtige steder.
2) Et samtidighedsproblem, hvor én bruger, der ikke har adgang,
kalder scriptet lige efter en anden bruger, der har adgang og den
anden bruger ikke har nået at sætte Application-variablen til False/nej.
Kan løses ved Application.Lock/Unlock, når scriptet tilgår den del af
scriptet,
der kræver tilladelse, hvilket må anses for en slags "kritisk sektion".
Man skal så lige være opmærksom på at Application.Lock låser _alle_
Aplication-variabler.
Bare lige et par tanker :)
| |
Jørn Andersen (11-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 11-11-08 16:07 |
|
On Tue, 11 Nov 2008 14:57:36 +0100, "Michael Weber"
<michael@michaelweber.invalid> wrote:
>Som jeg har forstået det, vil du bruge en Application-variabel
>til at tjekke om den enkelte bruger har adgang til en side.
>
>Det kan give 2 problemer :
>1) Hvis der sker en fejl mellem de punkter, hvor man tildeler
>Application-variablen værdier.
>Kan løses ved at drysse lidt On Error Resume ud, de rigtige steder.
Ja.
>2) Et samtidighedsproblem, hvor én bruger, der ikke har adgang,
>kalder scriptet lige efter en anden bruger, der har adgang og den
>anden bruger ikke har nået at sætte Application-variablen til False/nej.
>Kan løses ved Application.Lock/Unlock, når scriptet tilgår den del af
>scriptet,
>der kræver tilladelse, hvilket må anses for en slags "kritisk sektion".
>Man skal så lige være opmærksom på at Application.Lock låser _alle_
>Aplication-variabler.
Se mit tidligere indlæg:
Date: Sun, 09 Nov 2008 22:07:49 +0100
Her gøres Application-variablen bruger-afhængig, og så er man ude over
det problem.
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Michael Weber (11-11-2008)
| Kommentar Fra : Michael Weber |
Dato : 11-11-08 16:26 |
|
"Jørn Andersen" <jorn@jorna.dk> wrote in message
news:on7jh4t0ju3dk8jqh2v7ac9mfmrpi6sah0@4ax.com...
> On Tue, 11 Nov 2008 14:57:36 +0100, "Michael Weber"
> <michael@michaelweber.invalid> wrote:
>
>>Som jeg har forstået det, vil du bruge en Application-variabel
>>til at tjekke om den enkelte bruger har adgang til en side.
>>
>>Det kan give 2 problemer :
>>1) Hvis der sker en fejl mellem de punkter, hvor man tildeler
>>Application-variablen værdier.
>>Kan løses ved at drysse lidt On Error Resume ud, de rigtige steder.
>
> Ja.
>
>>2) Et samtidighedsproblem, hvor én bruger, der ikke har adgang,
>>kalder scriptet lige efter en anden bruger, der har adgang og den
>>anden bruger ikke har nået at sætte Application-variablen til False/nej.
>>Kan løses ved Application.Lock/Unlock, når scriptet tilgår den del af
>>scriptet,
>>der kræver tilladelse, hvilket må anses for en slags "kritisk sektion".
>>Man skal så lige være opmærksom på at Application.Lock låser _alle_
>>Aplication-variabler.
>
> Se mit tidligere indlæg:
> Date: Sun, 09 Nov 2008 22:07:49 +0100
>
> Her gøres Application-variablen bruger-afhængig, og så er man ude over
> det problem.
Oh...kay.
For mange kokke...
:)
| |
Jørn Andersen (07-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 07-11-08 01:27 |
|
On Thu, 6 Nov 2008 23:58:55 +0100, "bsn" <bsnSNABELAoncableDOTdk> wrote:
>> Probe http://www.bsndata.dk/vr/system/rapporter/../index.asp
>> HTTP/1.1 302 Object moved
>> ...
>> Location: ../index.asp
>> New location found: ../index.asp
>> ...
>> Probe http://www.bsndata.dk/vr/system/rapporter/../../index.asp
>> HTTP/1.1 200 OK
>>
>> Så du har lidt ged i dit site, samt at endpointet
>> ( http://www.bsndata.dk/vr/system/rapporter/../../index.asp) består af en
>> log in side.
>
>Tak for svar...
>Nej, der er vist ikke ged i sitet...
>../index.asp = når du er logget ind
>../../index.asp = loginside
>Hvad består geden i...???
Næh, det er fsv. udmærket til normalt brug, men du er nødt til at finde
en måde at "gå udenom" dit login tjek, når du vil hente med
..ImportFromUrl
>Hvad er endpoint...???
Den side du lander på, efter at du er omdirigeret af login-tjekket.
Good luck!
--
Jørn Andersen,
Brønshøj
| |
Ukendt (07-11-2008)
| Kommentar Fra : Ukendt |
Dato : 07-11-08 02:04 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev >
> Næh, det er fsv. udmærket til normalt brug, men du er nødt til at finde
> en måde at "gå udenom" dit login tjek, når du vil hente med
> .ImportFromUrl
Prøvede at lave det på en flad htm fil : http://www.bsndata.dk/vr/xxx.htm
Det virker perfekt...
Bjarne
| |
Jørn Andersen (07-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 07-11-08 04:24 |
|
On Fri, 7 Nov 2008 02:03:49 +0100, "bsn" <bsnSNABELAoncableDOTdk> wrote:
>
>"Jørn Andersen" <jorn@jorna.dk> skrev >
>> Næh, det er fsv. udmærket til normalt brug, men du er nødt til at finde
>> en måde at "gå udenom" dit login tjek, når du vil hente med
>> .ImportFromUrl
>
>Prøvede at lave det på en flad htm fil : http://www.bsndata.dk/vr/xxx.htm
The page cannot be found (404)
Men du har måske slettet den?
>Det virker perfekt...
Ja, hvis ikke der er et login-tjek, som omdirigerer, så burde der jo
ikke være problemer.
Hvordan er dit login-tjek lavet?
Formentlig med et check på en session-variabel. Denne session-variabel
er knyttet til dig (bsn) - eller rettere din browser - som bruger.
Men når Doc-objektet skal hente filen med .ImportFromUrl-metoden, så er
det jo ikke dig der henter den via *din* HTTP, men scriptet.
Så dit login-tjek vil ikke se, at din session-variable er sat.
Hvis du vil overbevise dig om, at det forholder sig sådan, så lav en
test.asp-side (uden login-tjek eller noget) med:
<%
Response.Write Session.SessionID
%>
Hent siden med din browser, og den vil skrive et tal.
Hent så samme side med dit AspPDF-script - og siden vil skrive et andet
tal.
Hvis du henter siden igen med din browser (inden din session udløber),
så vil du se samme tal som før.
Henter du siden igen med dit AspPDF-script, så får du et nyt tal hver
gang (fordi der ikke er sat en session-cookie).
Med andre ord:
Du kan ikke gå gennem et session-baseret login-tjek med
..ImportFromUrl-metoden, da den åbner en ny session for hver HTTP
request.
Så du skal altså tillade, at dit login-tjek omgås (under visse
omstændigheder ...), hvis du skal kunne udskrive siden via en
HTTP-forbindelse (.ImportFromUrl).
Hvis det foregår på *samme* server/domain, kan du fx åbne den, når en
bestemt Application-variabel er sat.
Application-variable virker ligesom Session-variable - men "dør" ikke,
før serveren genstartes.
Så kan du lade dit AspPDF-script sætte den on inden udskrift og sætte
den off bagefter.
Hvis det foregår på en anden server kræver det i sagens natur, at du har
adgang til at omgå login'en. Du kan så evt. lave et script, som sætter
din Application-variable on / off - og formentlig trigge den med et
AspHttp-kald i dit AspPDF-script. (Har jeg ikke leget med fornylig, så
prøv dig frem.)
Håber det hjalp lidt.
Good luck!
--
Jørn Andersen,
Brønshøj
| |
Ukendt (07-11-2008)
| Kommentar Fra : Ukendt |
Dato : 07-11-08 09:37 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev
>
>>
>>"Jørn Andersen" <jorn@jorna.dk> skrev >
>>> Næh, det er fsv. udmærket til normalt brug, men du er nødt til at finde
>>> en måde at "gå udenom" dit login tjek, når du vil hente med
>>> .ImportFromUrl
>>
>>Prøvede at lave det på en flad htm fil : http://www.bsndata.dk/vr/xxx.htm
>
> The page cannot be found (404)
> Men du har måske slettet den?
xxx.htm er bare et fiktivt navn - men det virkede...
>
> Ja, hvis ikke der er et login-tjek, som omdirigerer, så burde der jo
> ikke være problemer.
Næ, men prøv at se svar til Stig...
> Hvordan er dit login-tjek lavet?
> Formentlig med et check på en session-variabel. Denne session-variabel
> er knyttet til dig (bsn) - eller rettere din browser - som bruger.
>
> Men når Doc-objektet skal hente filen med .ImportFromUrl-metoden, så er
> det jo ikke dig der henter den via *din* HTTP, men scriptet.
> Så dit login-tjek vil ikke se, at din session-variable er sat.
Dyk - ??? )
> Hvis du vil overbevise dig om, at det forholder sig sådan, så lav en
> test.asp-side (uden login-tjek eller noget) med:
> <%
> Response.Write Session.SessionID
> %>
>
> Hent siden med din browser, og den vil skrive et tal.
> Hent så samme side med dit AspPDF-script - og siden vil skrive et andet
> tal.
>
> Hvis du henter siden igen med din browser (inden din session udløber),
> så vil du se samme tal som før.
> Henter du siden igen med dit AspPDF-script, så får du et nyt tal hver
> gang (fordi der ikke er sat en session-cookie).
>
> Med andre ord:
> Du kan ikke gå gennem et session-baseret login-tjek med
> .ImportFromUrl-metoden, da den åbner en ny session for hver HTTP
> request.
> Så du skal altså tillade, at dit login-tjek omgås (under visse
> omstændigheder ...), hvis du skal kunne udskrive siden via en
> HTTP-forbindelse (.ImportFromUrl).
Se svar til Stig...
> Hvis det foregår på *samme* server/domain, kan du fx åbne den, når en
> bestemt Application-variabel er sat.
> Application-variable virker ligesom Session-variable - men "dør" ikke,
> før serveren genstartes.
> Så kan du lade dit AspPDF-script sætte den on inden udskrift og sætte
> den off bagefter.
>
> Hvis det foregår på en anden server kræver det i sagens natur, at du har
> adgang til at omgå login'en. Du kan så evt. lave et script, som sætter
> din Application-variable on / off - og formentlig trigge den med et
> AspHttp-kald i dit AspPDF-script. (Har jeg ikke leget med fornylig, så
> prøv dig frem.)
Tror lige jeg ser på denne del senere...
> Håber det hjalp lidt.
Mjahhh...
Mange tak for din meget udførlige redegørelse...
Bjarne
| |
Ukendt (07-11-2008)
| Kommentar Fra : Ukendt |
Dato : 07-11-08 00:09 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:f1m5h4hbebed44hq2811hpjhbm0kphke18@4ax.com...
> On Thu, 6 Nov 2008 08:44:19 +0100, "bsn" <bsnSNABELAoncableDOTdk> wrote:
>
>>>>Doc.ImportFromUrl
>>>> http://www.bsndata.dk/vr/system/rapporter/rapport/kunder_alle.asp,
>>>>"landscape=true"
> <url>
>>> Måske at Url'en ikke eksisterer?
>>
>>Kan du uddybe lidt...
>
> Hvis jeg prøver at gå ind på ovenstående Url, får jeg 404 - Siden findes
> ikke.
>
>>Måske det kan skyldes, at jeg har et session tjek liggende på siden, som
>>sender "ikke indloggede" til index-siden...
>
> Lyder som en mulig forklaring - men jeg burde så ikke få 404, men blive
> omdirigeret - ??
Med session tjek : fejlkode Http fejlkode = 500
Uden session tjek : fejlkode Http fejlkode = 404
Bjarne
| |
Jørn Andersen (07-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 07-11-08 01:20 |
|
On Fri, 7 Nov 2008 00:09:02 +0100, "bsn" <bsnSNABELAoncableDOTdk> wrote:
>Med session tjek : fejlkode Http fejlkode = 500
Fejlkode 500 bør så kunne omsættes til en ASP fejlkode eller andet.
(Fjern x i "Vis meddelelser om uskadelige HTTP-fejl" i IE |
Indstillinger | Avanceret )
>Uden session tjek : fejlkode Http fejlkode = 404
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Stig Johansen (07-11-2008)
| Kommentar Fra : Stig Johansen |
Dato : 07-11-08 01:34 |
|
Jørn Andersen wrote:
> On Fri, 7 Nov 2008 00:09:02 +0100, "bsn" <bsnSNABELAoncableDOTdk> wrote:
>
>>Med session tjek : fejlkode Http fejlkode = 500
>
> Fejlkode 500 bør så kunne omsættes til en ASP fejlkode eller andet.
> (Fjern x i "Vis meddelelser om uskadelige HTTP-fejl" i IE |
> Indstillinger | Avanceret )
Det foresvæver mig, at der har været noget med (her i gruppen) der også
skulle rettes noget på nyere IIS'er før de korrekte meldinger kom.
Det kan også være det var Vista specifikt - husker ikke præcist hvad det
var.
--
Med venlig hilsen
Stig Johansen
| |
Ukendt (07-11-2008)
| Kommentar Fra : Ukendt |
Dato : 07-11-08 01:38 |
|
"Jørn Andersen" <jorn@jorna.dk> skrev
>
>>Med session tjek : fejlkode Http fejlkode = 500
>
> Fejlkode 500 bør så kunne omsættes til en ASP fejlkode eller andet.
> (Fjern x i "Vis meddelelser om uskadelige HTTP-fejl" i IE |
> Indstillinger | Avanceret )
Ja, den indstilling kører jeg med...
Det er min udbyders(UnoEuro) server, som melder fejlen...mon ikke de har
slået dette til...
>>Uden session tjek : fejlkode Http fejlkode = 404
Bjarne
| |
|
|