Toon posts:

[ASP] Database beveiligen in ASP

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zou graag willen weten hoe ik een database connectie leg in ASP met een Acces 2000 database die beveiligt is met een wachtwoord. Ik heb daar eens een stukje source van gehad maar dat ben ik kwijt.
Ik hoop dat iemand mij kan helpen.

  • ArchRAIDen
  • Registratie: Juni 2001
  • Laatst online: 08-04 16:29
Wat ik doe is een sessievariabele maken.
hier plaats ik dan de verbindings string in.
Dit kan overigens op verschillende manieren.

Dit is voor een ORACLE database, maar je kan
naar elke database connecten.... moet je maar ff kijken

zo:

Session("ConnectionString") = "DRIVER={Microsoft ODBC for Oracle};SERVER=<server>;UID=<user>;PWD=<wachtwoord>"


of zo:
Session("ConnectionString") = "DSN=<dsn>;DRIVER={Oracle ODBC driver};UID=<user>;PWD=<wachtwoord>"

en dan in je code:

DIM Conn

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open Session("ConnectionString")

Nu heb je je DB geopend en kun je m.b.v.

Conn.Execute( sql )

een sql uitvoeren. Je moet dan wel eerste je sql string vullen :)

Het resultaat zou je dan b.v. kunnen plaatsen in een variabele:

Result = Conn.Execute( sql )

That's it...
hoop dat je hier wat aan hebt.

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11-09 08:17

Basszje

Reisvaap!]

Waarom connectionless en waarom een session ?

Ik doe het iig zo :
code:
1
2
3
4
5
6
 dim dsn, con 
set con = server.CreateObject("ADODB.CONNECTION") 

dsn= "dsn=database;pwd=blabla" 

con.open dsn

En voila :)

edit:

Je moet dan wel een ODBC connectie al hebben liggen

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • ArchRAIDen
  • Registratie: Juni 2001
  • Laatst online: 08-04 16:29
Connectionless??

Ik zie niet wat je bedoelt...

het enige verschil tussen jouw en mij is dat ik
de connectiestring in een sessie variabele
heb zodat ik het in elke pagina kan gebruiken.

Of laat je je db ALTIJD open staan?

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11-09 08:17

Basszje

Reisvaap!]

Ownee ik loop te ijlen ( ik heb nu wel koffie op :P ) .
Dacht zo snel te bespeuren dat jij dat connectionless (aka zonder ODBC connectie ) deed. Maar niet :) . Sorry :) Excuses :P

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 06 maart 2002 10:00 schreef ArchRAIDen het volgende:
Connectionless??

Ik zie niet wat je bedoelt...

het enige verschil tussen jouw en mij is dat ik
de connectiestring in een sessie variabele
heb zodat ik het in elke pagina kan gebruiken.

Of laat je je db ALTIJD open staan?
Laat jij altijd jouw database connecties open staan voor een extra 20 minuten als een gebruiker onverwachts je website verlaat?

Als je dat probeert bij een druk bezochte website is het exit website! :P

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
Op woensdag 06 maart 2002 09:25 schreef ArchRAIDen het volgende:
Wat ik doe is een sessievariabele maken.
hier plaats ik dan de verbindings string in.
Dit kan overigens op verschillende manieren.

Dit is voor een ORACLE database, maar je kan
naar elke database connecten.... moet je maar ff kijken

zo:

Session("ConnectionString") = "DRIVER={Microsoft ODBC for Oracle};SERVER=<server>;UID=<user>;PWD=<wachtwoord>"


of zo:
Session("ConnectionString") = "DSN=<dsn>;DRIVER={Oracle ODBC driver};UID=<user>;PWD=<wachtwoord>"

en dan in je code:

DIM Conn

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open Session("ConnectionString")

Nu heb je je DB geopend en kun je m.b.v.

Conn.Execute( sql )

een sql uitvoeren. Je moet dan wel eerste je sql string vullen :)

Het resultaat zou je dan b.v. kunnen plaatsen in een variabele:

Result = Conn.Execute( sql )

That's it...
hoop dat je hier wat aan hebt.
Ik heb de volgende source:

dbase.open "provider=Microsoft.Jet.OLEDB.4.0;data source=d:\websites\test.mdb;pwd=blabla"

maar dan geeft hij een error :(
Ziet iemand misschien wat hier fout is.

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Voor dit soort zaken een constante gebruiken en niet in een session stoppen.

Verwijderd

Topicstarter
Op woensdag 06 maart 2002 18:00 schreef raptorix het volgende:
Voor dit soort zaken een constante gebruiken en niet in een session stoppen.
Heb je geen voorbeeld voor me, want ik kom erniet uit!!

Verwijderd

Het volgende gebruik ik altijd met succes:
code:
1
Conn.Open "DBQ=database.mdb;DRIVER={Microsoft Access Driver (*.mdb)}", [un], [pw]

Verwijderd

Hier komt een wijze uitspraak :)

Gebruik een UDL!

Dat is een datafile filetje :Z

Gewoon een tekst bestand maken, naam wijzigen in bijv:

mijndatafile.udl

Dubbelklikken en genieten maar. Je kan nu elke database openen die win2000 ondersteund. SQL Access en ga zo maar door.

Wat je dan moet doen is in je global.asa ff een application variabele aanmaken:

application("DBlogin") = "File:\\hier je pad naar je UDL"

Vervolgens heb je dan in je code de volgende fijne korte database koppeling:


Set objRs = Server.Createobject("ADODB.recordset")
sSQL = "ja die verzin je zelf maar :)"
objRs.open sSQL, application("DBlogin")


Succes!!!

*Ik hoop dat je dit bedoelde?*

Overigens, waarom een sesssion gebruiken om je database string in te bewaren. Veel gebruikers = Veel Sessions = Veel Geheugen = Slechte performance

Application word door iedereen gebruikt en is er maar een van

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11-09 08:17

Basszje

Reisvaap!]

Wist je trouwens al dat het zo schijnt te zijn dat als je cookies uit hebt staan ( clientside! ) de server helemaal geen session onthoud :?

[edit]
Net ff getest (zelfs bij GOT niet meer ingelogd ) en het is idd zo. Elke refresh is dan nieuwe session :{ .

Niet fijn als dat met je database gebeurd dus ...

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Verwijderd

Bij mij is dat bekend ja. Het vreemde is alleen dat je die cookie alleen nooit meer tegenkomt op je bak. Het is echt weer zo'n diepgewortelde M$ uitvinding denk ik.

Ik moet zeggen dat ik de laatste tijd de sessions wel een beetje vermijd. De meeste webshops bouwen wij de shoppingcart meestal in de DB (MsSQL2000). Errug snel, zeker wanneer je Stored Procedures gebruikt met Triggers. Probeer dat maar eens met MySQL B-)

En nu niet aankomen dat MySQL gratis aub. Die is afgezaagd!

Verwijderd

Op woensdag 06 maart 2002 21:06 schreef Basszje het volgende:
Wist je trouwens al dat het zo schijnt te zijn dat als je cookies uit hebt staan ( clientside! ) de server helemaal geen session onthoud :?
Klopt, maar dat is logisch. Een session wordt voor een gebruiker aangemaakt. Als er op de client geen cookie geschreven kan worden kan die gebruiker dus nooit door de server worden geidentificeerd.
Maar het is ook volkomen onzin om je browser geen cookies te laten accepteren :)

Verwijderd

Op woensdag 06 maart 2002 23:01 schreef voetenzalf het volgende:
Bij mij is dat bekend ja. Het vreemde is alleen dat je die cookie alleen nooit meer tegenkomt op je bak. Het is echt weer zo'n diepgewortelde M$ uitvinding denk ik.
Maar als de betreffende sessie expired is, is die cookie ook niet meer nodig (dus die verdwijnt gewoon). In zo'n cookie staat ook alleen maar een id.
Ik moet zeggen dat ik de laatste tijd de sessions wel een beetje vermijd. De meeste webshops bouwen wij de shoppingcart meestal in de DB (MsSQL2000).
Hoe doe je dat dan ?
De client MOET dmv een uniek id worden ge-assigned aan de session op de server (dit kan door middel van een cookie of een sessionid in de url (wat je tegenwoordig vaak ziet)).
Je kan je sessionid wel in een database opslaan, maar dat zorgt natuurlijk voor veel overhead (iedere keer een db-connectie om het sessieid op te halen).
Errug snel, zeker wanneer je Stored Procedures gebruikt met Triggers. Probeer dat maar eens met MySQL B-)
En nu niet aankomen dat MySQL gratis aub. Die is afgezaagd!
Sybase 11.9.2 voor Linux :) Is volledig gratis en ondersteund nagenoeg alles wat MS SQL Server te bieden heeft (stored procedures, triggers, udd's, etc.)
En trouwens, volgende versie van MySQL gaat wel stored procedures ondersteunen :)
Pagina: 1