webForumDet fria alternativet

Prestanda vid check av rättighet

ASP

8 svar · 225 visningar · startad av erka

Medlem sedan dec. 19996 522 inlägg
Frågan#1

jag har denna kod som kolla om en person har rätt att redigera ett inlägg (kollar om det är hans eget)

<%
Option explicit
Session.LCID = 1053
Dim Connect, ArrRS, strSQL, strReplieId
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={SQL Server}; server=666.66.66.6; uid=Satan; pwd=Devil; database=FORUM"
strReplieId = Request.Querystring("ReplieId")
strSQL = "SELECT bla bla bla. WHERE (dbo.Replies.ReplieId = "& strReplieId &")"
ArrRS = Connect.Execute(strSQL).getrows()
Connect.Close
Set Connect = Nothing

Sub CheckAccess(strUserName,strQuerystring)
	strUserName = Trim(strUserName)
	If NOT Trim(Session("UserName"))  = strUserName THEN 
		Response.Redirect("AccessDenied.asp?ErrorCode="& strQuerystring &"")
	End If
End Sub 

'KOLLA OM PERSONER FÖRSÖKER REDIGERA SITT EGET INLÄGG
Dim strUserName, strQuerystring
strUserName = ArrRs(7,0)
strQuerystring = "Try to edit other persons replie"
Call CheckAccess(strUserName,strQuerystring) 

Här kommer kod för att editera inlägget om man hade access, skriver ut formulär etc.

Erase ArrRs
%>

Skulle det vara bättre om jag gjorde så här

<%
Option explicit
Session.LCID = 1053
Dim Connect, ArrRS, strSQL, strReplieId
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={SQL Server}; server=666.66.66.6; uid=Satan; pwd=Devil; database=FORUM"
strReplieId = Request.Querystring("ReplieId")
strSQL = "SELECT bla bla bla. WHERE (dbo.Replies.ReplieId = "& strReplieId &")"
ArrRS = Connect.Execute(strSQL).getrows()
Connect.Close
Set Connect = Nothing

If Trim(Session("UserName")) = Trim(strUserName) THEN 

Här kommer kod för att editera inlägget om man hade access, skriver ut formulär etc.

Erase ArrRs

Else
Response.Redirect("AccessDenied.asp?blablabla")
End If
%>

Alltså att jag kollar igenom det på ett annat sätt, kör en if else satts och inte bara en ifsatts, den läser ju ändå igenom hela sidan innan den skrivs.

tacksam för synpunkter

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

[Redigerat av erka den 10 okt 2001]

Medlem sedan feb. 200112 078 inlägg
#2

Ingen direkt super-expert, men jag måste säga att jag tycker förslag två ser bättre ut. :q

------------------
Craving for malicious suspection fulfilles the prophesized termination of this world.

Medlem sedan dec. 19996 522 inlägg
#3

Varför tycker du det då? Med det kommer det ju att behövas 2 include filer istället för en där jag skickar med subben. Subben kan jag sedan använda på fler sidor som ska kollas om behörighet. Jag vill ju veta hur vb motorn tänker i detta fall

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

[Redigerat av erka den 10 okt 2001]

Medlem sedan feb. 200112 078 inlägg
#4

Som sagt.. ingen super-expert..

Men nu när du säger det, om du vill återanvända subben så är ju det första bättre, det har du nog rätt i.

Hur VB-motorn tänker eller fungerar har jag tyvärr ingen aning om, :) men jag har väl för mig att en sub execas fortare än viss annan kod va?

Varför skulle du behöva två include filer i den andra för? :q

------------------
Craving for malicious suspection fulfilles the prophesized termination of this world.

Medlem sedan dec. 19996 522 inlägg
#5

Jag frågade varför du tyckte det andra alternativet såg bättre ut. Att du inte visste något om vbmotorn såg jag ju i första inlägget du posta ;)

2 inc. För att kunna ha den på flera sidor också så klart. Någon som vet hur motorn fungerar rent prestandamässigt och hur den tänker i detta fall med subben eller den med ifsattserna

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

Medlem sedan feb. 200112 078 inlägg
#6

Jag frågade varför du tyckte det andra alternativet såg bättre ut.

Det var mindre krånglig kod vid första överblicken. Mindre kod, snabbare körning. (Inte i alla fall men..)

Att du inte visste något om vbmotorn såg jag ju i första inlägget du posta.

Tack för den, men som sagt.. :e

Sen tror jag väl inte att include-filer sliter så värst mycket på parsing-tiden, det finns ganska många andra grejer man kan göra som är mycket värre, men det vet du ju redan.

Jag menar, du kör ju trots allt getRows, vilket torde tyckas vara den snabbaste metoden i detta fallet att hämta din data.

------------------
Craving for malicious suspection fulfilles the prophesized termination of this world.

Medlem sedan dec. 200012 464 inlägg
#7

Lägg kontrollen direkt vid update istället så slipper du en hel del kod


sql = "update ogrish set q = 'newdata' "_
& "where dbo.Replies.ReplieId = "& strReplieId _
& " and username = '" & strUserName & "'"
connect.execute sql,rows,128
if rows = 0 then
strQuerystring = "Attempt to edit other persons reply"
Response.Redirect("AccessDenied.asp?ErrorCode="& strQuerystring )
end if

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 10 okt 2001]

Medlem sedan feb. 200112 078 inlägg
#8

Touché!

Tänkte precis komma till den delen jue! :e :e ;) :)

Inte detta decenniet direkt.. :)

------------------
Craving for malicious suspection fulfilles the prophesized termination of this world.

Medlem sedan dec. 19996 522 inlägg
#9

Varför ska jag använda update?

------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !

269 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)