/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Hjælp til WWW-Authenticate sousekode
Fra : Kim Belhauge


Dato : 21-07-01 06:52

Hej med jer. jeg har et lille problem jeg kan ikke få det til at
virker..


Sousekode

<%
Response.Expires = -1
Response.Buffer = True
Session.Timeout = 5
%>

<!--#include virtual="include/connstring.asp" -->
<%
if Request.ServerVariables("AUTH_USER")="" and
Request.ServerVariables("AUTH_PASSWORD")="" then
IsAdmin=false
IsUser=false
end if

if not (IsUser and IsAdmin) then
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnString
set = conn.execute("select level from users where
nick='"&Request.ServerVariables("AUTH_USER")&"' and
pass='"&Request.ServerVariables("AUTH_PASSWORD")&"'")
if not (.EOF or .BOF) then
IsUser=True
if (int(("level")) = 10 or int(("level")) = 9) then
IsAdmin=True
else
IsAdmin=false
end if
else
IsUser=false
end if
end if

if not (IsUser and IsAdmin) then
Response.Addheader "WWW-Authenticate", "BASIC
Realm="&chr(34)&"User Authorization"&chr(34)&""
response.Status = 401
%><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD><TITLE>401 Authorization Required</TITLE></HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000"><H1>401 Authorization
Required</H1>
<p>Either you gave a wrong username or password, or your browser
did not send the information correctly.</p>
<p>You don´t have permission to access <%=
Request.ServerVariables("SCRIPT_NAME") %> on this
server.</p></BODY></HTML><%
response.end
end if
conn.close
set conn = nothing
%>



--
Brug Validator service: http://www.html.dk/validator
- Tast din URL én gang, og validér dokumentet hos 12 validatorer
- Understøtter HTML, CSS og søgemaskineoptimering

 
 
Jørn Andersen (22-07-2001)
Kommentar
Fra : Jørn Andersen


Dato : 22-07-01 00:39

On Sat, 21 Jul 2001 05:52:18 +0000 (UTC), Kim Belhauge
<KBR@kk-Netsoft.dk> wrote:

>Hej med jer. jeg har et lille problem jeg kan ikke få det til at
>virker..

Hvad med at fortælle, *hvordan* det ikke virker:
Får du en fejlmeddelelse? I så fald hvilken?
Får du ikke det ønskede resultat? I så fald hvordan?
etc.

Good luck,
Jørn

--
Jørn Andersen
Brønshøj

Kim Belhauge (24-07-2001)
Kommentar
Fra : Kim Belhauge


Dato : 24-07-01 12:14

Hej Jørn, jeg kan slet ikke få den til at virke. den vil ikke gå til
den side igen. det virker som om der er fejl i den kode jeg har her
selv om der er folk der siger at det virker...

Det jeg skla brger hjælp til at er lave et loginsystem over denne
kode.

da jeg gerne vil have det på den måde at jeg kan lave en tabel i min
database der indholder

Websted
Domæne
Bruger
Password
Leve

Bare så jeg kan bruge det til alle min domænes som så kan virke på
den mæde..


Jørn Andersen wrote in dk.edb.internet.webdesign.serverside.asp:
> On Sat, 21 Jul 2001 05:52:18 +0000 (UTC), Kim Belhauge
> <KBR@kk-Netsoft.dk> wrote:
>
> >Hej med jer. jeg har et lille problem jeg kan ikke få det til at
> >virker..
>
> Hvad med at fortælle, *hvordan* det ikke virker:
> Får du en fejlmeddelelse? I så fald hvilken?
> Får du ikke det ønskede resultat? I så fald hvordan?
> etc.
>
> Good luck,
> Jørn
>
> --
> Jørn Andersen
> Brønshøj


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagoiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (24-07-2001)
Kommentar
Fra : Jørn Andersen


Dato : 24-07-01 23:49

On Sat, 21 Jul 2001 05:52:18 +0000 (UTC), Kim Belhauge
<KBR@kk-Netsoft.dk> wrote:

Hej Kim,

Så vidt jeg forstår, så vil du:
1) checke for, at der er indtastet user/pw
2) Hvis Ja, så check i db
3) Hvis nej, vis en fejl side

Jeg forsøger mig med lidt kommentarer undervejs ...
Desuden har jeg indsat "***" nogle steder.
"***" kan du midlertidigt erstatte med

Response.Write varNavnPåVariabel
Response.End

- altså: Udskriv de foranstående variable og stop herefter scriptet.
Det giver dig vished om, at dine variable rent faktisk har den værdi,
du forventer.
I første tilfælde fx:

Response.Write IsAdmin & "<br>" & vbcrlf
Response.Write IsUser & "<br>" & vbcrlf
Response.End

Når svaret så er, som du regner med, så udkommenter linierne:
' Response.Write IsAdmin & "<br>" & vbcrlf
' Response.Write IsUser & "<br>" & vbcrlf
' Response.End
- så scriptet kan komme videre
Til sidst kan du så evt. slette linierne helt


<SNIP>

>if Request.ServerVariables("AUTH_USER")="" and
>Request.ServerVariables("AUTH_PASSWORD")="" then

Hvad skal der ske, hvis kun den ene er = "" ?
- prøv at erstatte And med Or

>IsAdmin=false
>IsUser=false

Hvad er IsAdmin/IsUser, hvis IF er falsk?
- indføj fx:
Else
IsAdmin = True
IsUser = True
>end if

***

>if not (IsUser and IsAdmin) then

Skal Not ikke væk?
- som det står, vil det efterfølgende kun blive udført, hvis mindst
den ene af IsAdmin/IsUser er falsk

>Set conn = Server.CreateObject("ADODB.Connection")
>conn.open ConnString
>set = conn.execute("select level from users where
>nick='"&Request.ServerVariables("AUTH_USER")&"' and
>pass='"&Request.ServerVariables("AUTH_PASSWORD")&"'")
> if not (.EOF or .BOF) then
> IsUser=True
> if (int(("level")) = 10 or int(("level")) = 9) then
> IsAdmin=True
> else
> IsAdmin=false
> end if
> else
> IsUser=false
> end if
>end if

***

>if not (IsUser and IsAdmin) then

Hvad skal der ske hvis IsUser er sand, mens IsAdmin er falsk?

>Response.Addheader "WWW-Authenticate", "BASIC
>Realm="&chr(34)&"User Authorization"&chr(34)&""
>response.Status = 401
>%><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
><HTML><HEAD><TITLE>401 Authorization Required</TITLE></HEAD>
><BODY BGCOLOR="#FFFFFF" TEXT="#000000"><H1>401 Authorization
>Required</H1>
><p>Either you gave a wrong username or password, or your browser
>did not send the information correctly.</p>
><p>You don´t have permission to access <%=
>Request.ServerVariables("SCRIPT_NAME") %> on this
>server.</p></BODY></HTML><%
>response.end

Denne Response.End skal væk.
Du har sikkert sat den ind, fordi du fik fejl i de næste linier :)
Årsagen er, at du åbner en forbindelse *inde i* en If, men lukker den
uden for If'en.
Jeg ville lukke den før dit næstsidste End If (ca. 15 linier oppe)

>end if
>conn.close
>set conn = nothing
>%>

Desuden:
Hvorfor ikke kæde de to halvdele sammen således:
If (IsAdmin/IsUser er sand) Then
Kald base og check og luk
Else
Vis fejlside
End If

Håber ovenstående kan lede dig på rette spor.
Brug metoden med "Response.Write" flittigt, hvis du har problemer med
et script, så kan man "steppe" sig igen scriptet og se, om det
reagerer som forventet i forskellige situationer.


Good luck,

Jørn


--
Jørn Andersen
Brønshøj

Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408868
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste