---
title: "(\"http_authorization\")"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/11504-http-authorization"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Dpo"
published: "2001-09-06T09:06:00.000Z"
updated: "2001-09-07T08:56:00.000Z"
replies: 2
views: 231
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/11504-http-authorization"
---

# ("http_authorization")

## #1 — Dpo, 2001-09-06T09:06Z

Varför fungerar inte detta script?
inloggnins rutan kommer upp men lösenordet stämmer inet
\<%
'Av Gunnar Liljas, 2001 - gunnar@leon.se
'Ovanstående rad ska vara kvar, om du använder skriptet
'Funktionen CheckUser byts ut mot godtycklig användarkoll, och självklart kan man kolla något annat än Session("UserID")

DoAuth

'Här fortsätter sidan, efter att man blivit godkänd

Sub DoAuth
	if isempty(Session("UserID")) then
		strAuth=request.servervariables("HTTP_AUTHORIZATION")
		if len(strAuth)\>7 then
			if lcase(left(strAuth,5))="basic" then
				strAuth=mid(strAuth,7)
				strAuth=Base64Decode(strAuth)
				arrLogin=split(strAuth,":")
				strUser=arrLogin(0)
				strPass=arrLogin(1)
				if CheckUser(strUser,strPass) then
					exit sub
				end if
			end if
		end if
		
		NoAuth
	end if
End Sub

Function CheckUser(username,password)
	if username="admin" and password="admin" then 
		Session("UserID")=1
		CheckUser=true
	end if
End Function

Sub NoAuth
	Response.Status = "401 Unauthorized"
	Response.AddHeader "WWW-Authenticate","BASIC Realm=Min skyddade zon"
	Response.Write "\<B\>Fy skäms!\</B\>"
	Response.End
End Sub	

Function Base64Decode(inString)
	dim strOutput,intPos,intCharPos,intBytes,intTmpPos,intTmp,strChar
    CONST Base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    if (Len(inString) mod 4)\<\>0 then exit function
    for intPos=1 to Len(inString) step 4
		intBytes=3
		intTmp=0
		for intCharPos=0 to 3
			if mid(inString, intPos + intCharPos, 1) = "=" then
				intBytes=intBytes-1
				intTmpPos=0
			else
				intTmpPos=InStr(Base64Chars, Mid(inString, intPos + intCharPos, 1)) - 1
				if intTmpPos=-1 then exit function
			end if
			intTmp=64\*intTmp+intTmpPos
		next
    	for intCharPos=1 to intBytes
			select case intCharPos
				case 1: 
					strOutput=strOutput & chr(intTmp \\ 65536)
				case 2: 
					strOutput=strOutput & chr((intTmp and 65535) \\ 256)
				case 3: 
					strOutput=strOutput & chr(intTmp and 255)
			end select
		next
    next
    Base64Decode = strOutput
End Function

%\>

Permalänk: https://www.webforum.nu/p/11504

## #2 — emission, 2001-09-06T16:46Z

Hmmm....det funkar för mig. Du råkar inte ha någon form av autenticering påslagen redan?

Permalänk: https://www.webforum.nu/p/285882

## #3 — OveRRidE, 2001-09-07T08:56Z

Exakt vad gör detta script? Kan inte testa just nu...

Permalänk: https://www.webforum.nu/p/285883

---

Tråden på webben: https://www.webforum.nu/amne/asp/11504-http-authorization
