2 messaggi dal 17 aprile 2001
Ho creato il mio sito basato su un Db. Funziona tutto.
Poi ho deciso di proteggere il DB con Impostazione guidata Protezione. Ora ho un altro Db che si chiama Protetto.mdw in cui sono contenuti i gruppi, gli utenti e le autorizzazioni. La composizione guidata mi ha anche cresto un link per aprire il BD.
Ora, se uso il link tutto funziona e mi viene chiesto Username e Password per accedere al Db con Access.

La mia domanda é: come faccio ad interrogare un db protetto tramite le ASP? ho letto gli articoli riguardanti l'apertura di DB protetti, ma presumo che si riferissero a db protetti con una unica password e non in questo modo.

per aprire il DB uso questa funzione:

Function ApriConn(NmDB)
Set ApriConn = Server.CreateObject("ADODB.Connection")
ApriConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(NmDB)
End Function



2 messaggi dal 17 aprile 2001
ho trovato l'articolo che risolve il mio problema a:

http://support.microsoft.com/support/kb/articles/Q191/7/54.ASP?LN=IT&SD=SO&FR=0

lo riporto per comoditá...


HOWTO: Open a Secured Access Database in ADO Through OLE DB

--------------------------------------------------------------------------------
The information in this article applies to:

Microsoft Visual Basic Professional Edition for Windows, versions 5.0, 6.0
Microsoft Visual Basic Enterprise Edition for Windows, versions 5.0, 6.0
ActiveX Data Objects (ADO), versions 2.0, 2.1 SP2, 2.5, 2.6
Microsoft OLE DB Provider for Jet, version 1.0

--------------------------------------------------------------------------------


SUMMARY
The native OLE DB provider for Microsoft Access databases that ships with Microsoft Data Access Components (MDAC) version 2.0 or later enables you to open a secured Microsoft Access database.



MORE INFORMATION
If you are opening a password-protected database, you can use any one of the following three syntaxes:

Dim MyConn As New ADODB.Connection

MyConn.Provider = "Microsoft.Jet.OLEDB.4.0"
MyConn.Properties("Data Source") = "C:\...\JetPassword.MDB"
MyConn.Properties("Jet OLEDB:Database Password") = "MyPwd"
MyConn.Open
-or-
Dim MyConn As New ADODB.Connection
Dim strConn As String

strConn = "Data Source=C:\...\JetPassword.MDB;" & _
"Jet OLEDB:Database Password=MyPwd"
MyConn.Provider = "Microsoft.Jet.OLEDB.4.0"
MyConn.Open strConn
-or-
Dim MyConn As New ADODB.Connection
Dim strConn As String

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\...\JetPassword.MDB;" & _
"Jet OLEDB:Database Password=MyPwd"
MyConn.Open strConn

If you are opening a database that uses Jet security, you can use any one of the following three syntaxes:
Dim MyConn As New ADODB.Connection

MyConn.Provider = "Microsoft.Jet.OLEDB.4.0"
MyConn.Properties("Data Source") = "C:\...\JetSecurity.MDB"
MyConn.Properties("Jet OLEDB:System database") = "C:\...\System.MDW"
MyConn.Open UserID:="Admin", Password:="MyPwd"
-or-
Dim MyConn As New ADODB.Connection
Dim strConn As String

strConn = "Data Source=C:\...\JetSecurity.MDB;" & _
"Jet OLEDB:System database=C:\...\System.MDW"
MyConn.Provider = "Microsoft.Jet.OLEDB.4.0"
MyConn.Open ConnectionString:=strConn, _
UserID:="Admin", Password:="MyPwd"
-or-
Dim MyConn As New ADODB.Connection
Dim strConn As String

strConn = "Provider=Microsoft.Jet.OLEDB.4.0;"
"Data Source=C:\...\JetSecurity.MDB;" & _
"Jet OLEDB:System database=C:\...\System.MDW"
MyConn.Open ConnectionString:=strConn, _
UserID:="Admin", Password:="MyPwd"
NOTE: Jet 3.51 OLEDB provider is designed to open Access 97 databases only. Jet 4.0 OLEDB provider is designed to open Access 2000 or Access 97 databases.

If you must use the Jet 3.51 Provider in the above examples, change the provider name to "Microsoft.Jet.OLEDB.3.51."


Ciao ho seguito le indicazioni dell'articolo che hai riportato e lo ho adattato ai miei DB, questo è il codice:

<%@ LANGUAGE="VBSCRIPT" %>
<%Option Explicit%>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft FrontPage 4.0">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
<TITLE>Login!</TITLE>
</HEAD>
<BODY background="../images/bg22.jpg" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">

<!--Begin Server Side Script Here-->
<%
Dim rst1
Dim rst2
Dim strPass
Dim strSQL
Dim strSQL2
Dim strConnect
Dim strConnect2
Dim strPath
Dim strPath1
Dim strConn

'Passa le informazioni nelle variabili
strPass=request.form("txtPass")
Session("UserID")=request.form("txtID")

set strConnect=Server.CreateObject("ADODB.Connection")
strPath = Server.MapPath("/fpdb/db_utenti.mdb")
strPath1 = Server.MapPath("/fpdb/Prova.mdw")

strConnect.Provider="Microsoft.Jet.OLEDB.4.0"
strConnect.Properties("Data Source")=strPath
strConnect.Properties("Jet OLEDB:System database")=strPath1
strConnect.open "UserID:="1", Password:="uno"%>

(la parte iniziale della pagina ASP); ma quando la eseguo in locale (su NT4 SP6 NTOptionPack) mi restituisce questo errore:

Errore di compilazione di Microsoft VBScript errore "800a0401"

Prevista fine istruzione

/login_mod.asp, riga 36

strConnect.open "UserID:="1", Password:="uno"
--------------------------^

Cosa ho sbagliato?? tu come hai risolto??
Grazie.

www.dittacalcio.com
L'ennesimo sito di FantaCalcio.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.